189 8069 5689

C#中有哪些内置特性

这期内容当中小编将会给大家带来有关C#中有哪些内置特性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、网站设计、石峰网络推广、成都微信小程序、石峰网络营销、石峰企业策划、石峰品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供石峰建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

C#内置特性之System.ObsoleteAttribute 特性

我们通过这个例子来看一下特性是如何解决上面的问题:我们可以给旧的SendMsg()方法上面加上Obsolete特性来告诉编译器这个方法已经过时,然后当编译器发现当程序中有地方在使用这个用Obsolete标记过的方法时,就会给出一个警告信息。

namespace Attribute {       public class Message {}            public class TestClass {         // 添加Obsolete特性         [Obsolete("请使用新的SendMsg(Message msg)重载方法")]         public static void ShowMsg() {             Console.WriteLine("这是旧的SendMsg()方法");         }          public static void ShowMsg(Message msg) {             Console.WriteLine("新SendMsg()方法");         }       }       class Program {         static void Main(string[] args) {             TestClass.ShowMsg();             TestClass.ShowMsg(new Message());                   }      }  }

现在运行这段代码,我们会发现编译器给出了一个警告:警告CS0618: “Attribute.TestClass.ShowMsg()”已过时:“请使用新的SendMsg(Message msg)重载方法”。通过使用特性,我们可以看到编译器给出了警告信息,告诉客户程序存在一个新的方法可供使用,这样,程序员在看到这个警告信息后,便会考虑使用新的SendMsg()方法。

NOTE:简单起见,TestClass类和 Program位于同一个程序集中,实际上它们可以离得很远。

C#内置特性的使用方法

通过上面的例子,我们已经大致看到特性的使用方法:首先是有一对方括号“[]”,在左方括号“[”后紧跟特性的名称,比如Obsolete,随后是一个圆括号“()”。和普通的类不同,这个圆括号不光可以写入构造函数的参数,还可以给类的属性赋值,在Obsolete的例子中,仅传递了构造函数参数。

NOTE:实际上,当你用鼠标框选住Obsolete,然后按下F12转到定义,会发现它的全名是ObsoleteAttribute,继承自Attribute类。但是这里却仅用Obsolete来标记方法,这是.Net的一个约定,所有的特性应该均以Attribute来结尾,在为对象标记特性时如果没有添加Attribute,编译器会自动寻找带有Attribute的版本。

NOTE:使用构造函数参数,参数的顺序必须同构造函数声明时的顺序相同,所有在特性中也叫位置参数(Positional Parameters),与此相应,属性参数也叫做命名参数(Named Parameters)。

上述就是小编为大家分享的C#中有哪些内置特性了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


网站名称:C#中有哪些内置特性
链接分享:http://jkwzsj.com/article/ihjoes.html

其他资讯