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

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

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

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 修饰符的属性声明,可在派生类中重写虚拟继承属性。

 

作者: 
出处: 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

你可能感兴趣的文章
初识●美丽的邂逅
查看>>
C#各种数据类型的最大值和最小值常数
查看>>
支付常见问题
查看>>
Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)...
查看>>
【本地储存】修改我吧,然后刷新页面看看
查看>>
两个表,字段模糊匹配
查看>>
实用栈检查括号是否匹配
查看>>
HTML5游戏开发,剪刀石头布小游戏案例
查看>>
python——借书题
查看>>
MAMP PRO mysql无法启动
查看>>
做固定比例的页面
查看>>
微服务架构
查看>>
数字信号处理的思考
查看>>
用STSADM工具全自动备份sharepoint站点
查看>>
Local workspace file ('angular.json') could not be found.
查看>>
P3747 相逢是问候 欧拉定理+线段树
查看>>
SaltStack的数据系统
查看>>
贪婪与非贪婪模式
查看>>
vue router使用query和params传参的使用
查看>>
C++ noexcept
查看>>