C#中有哪些内置特性

发布时间:2021-07-07 16:01:17 作者:Leah
来源:亿速云 阅读:196

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

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#中有哪些内置特性了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. C#特性
  2. Python中有哪些内置方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:C#中Boxing和Unboxing的区别是什么

下一篇:Spring Boot中三种拦截器的创建方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》