博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
虚拟属性
阅读量:7146 次
发布时间:2019-06-29

本文共 1747 字,大约阅读时间需要 5 分钟。

     本文使用一个控制台工程来测试虚拟属性,下面是完整的控制台程序代码。

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace VisualProperty 7 { 8     class Program 9     {10         static void Main(string[] args)11         {12             MyBaseClass mbc = new MyBaseClass();13             mbc.Name = "";      //父类输出""14             MyDerivedClass mdc = new MyDerivedClass();15             mdc.Name = "";      //子类输出unknown16             Console.WriteLine(string.Format("基类输出Name属性:{0}", mbc.Name));17             Console.WriteLine(string.Format("子类输出Name属性:{0}", mdc.Name));18         }19     }20 21     class MyBaseClass22     {23         //虚拟自动属性。子类可以使用overrides重写该属性,24         //子类可以实现get和set访问器,以实现自定义的操作。25         public virtual string Name { get; set; }26 27         // 带支持字段的虚拟属性28         private int num;29         public virtual int Number30         {31             get { return num; }32             set { num = value; }33         }34     }35 36 37     class MyDerivedClass : MyBaseClass38     {39         //Name属性的支持字段40         private string name;41 42        //在子类中重写Name字段,实现特殊的get,set访问器43         public override string Name44         {45             get46             {47                 return name;48             }49             set50             {51                 if (!string.IsNullOrWhiteSpace(value))52                 {53                     name = value;54                 }55                 else56                 {57                     name = "Unknown";58                 }59             }60         }61 62     }63 64 65 }

运行结果截图

除了声明和调用语法不同外,虚拟属性的行为与抽象方法一样。

  • 在静态属性上使用 virtual 修饰符是错误的。

  • 通过包括使用 override 修饰符的属性声明,可在派生类中重写虚拟继承属性。

 

转载于:https://www.cnblogs.com/kissazi2/archive/2013/01/03/2843363.html

你可能感兴趣的文章
CNN网络架构演进:从LeNet到DenseNet
查看>>
Redis 安全
查看>>
vue之导入Bootstrap以及jQuery的两种方式
查看>>
C#.NET股票历史数据采集,【附18年历史数据和源代码】
查看>>
Linux中断概述
查看>>
【python】给正则匹配部分命名
查看>>
让 Git Bisect 帮助你
查看>>
Golang入门教程(十二)安装注意事项
查看>>
http://www.360doc.com/userhome.aspx?userid=5054188&cid=235
查看>>
java:BufferedImage推断图像通道顺序并转RGB/BGR
查看>>
Hbase调用JavaAPI实现批量导入操作
查看>>
js 函数定义的2种方式
查看>>
python基础-异常(exception)处理
查看>>
vue elementui switch开关控件的使用
查看>>
kafkaStream解析json出错导致程序中断的解决方法
查看>>
Python Socket网络编程详解
查看>>
【WPF】wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例
查看>>
UWP:使用Composition实现类似安卓的水波纹Ripple效果
查看>>
FTP服务器(SOCKET)返回异常 500 Command not understood
查看>>
nodejs Commander 命令行神器简单示例
查看>>