C# 特性(Attribute)

Posted yuanshou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 特性(Attribute)相关的知识,希望对你有一定的参考价值。

.net 框架定义了三种预定义特性(Attribute)

1、AttributeUsage 

预定义特性 AttributeUsage 描述了如何使用一个自定义特性类。它规定了特性可应用到的项目的类型。

2、Conditional 

这个预定义特性标记了一个条件方法,其执行依赖于指定的预处理标识符。

它会引起方法调用的条件编译,取决于指定的值,比如 Debug 或 Trace

#define DEBUG
//此处DEBUG是否定义决定了后面的[Conditional("DEBUG")]下面的函数Message(string msg) 是否执行 using System; using System.Diagnostics; public class Myclass { [Conditional("DEBUG")] public static void Message(string msg) { Console.WriteLine(msg); } } class Test { static void function1() { Myclass.Message("In Function 1."); function2(); } static void function2() { Myclass.Message("In Function 2."); } public static void Main() { Myclass.Message("In Main function."); function1(); Console.ReadKey(); } }

3、Obsolete

这个预定义特性标记了不应被使用的程序实体。它可以让您通知编译器丢弃某个特定的目标元素。例如,当一个新方法被用在一个类中,但是您仍然想要保持类中的旧方法,您可以通过显示一个应该使用新方法,而不是旧方法的消息,来把它标记为 obsolete(过时的)。

using System;
public class MyClass
{
   [Obsolete("Don‘t use OldMethod, use NewMethod instead", true)]
//此处obsolete中的参数,true代表此处是错误代码,false代表此处不处理
   static void OldMethod()
   { 
      Console.WriteLine("It is the old method");
   }
   static void NewMethod()
   { 
      Console.WriteLine("It is the new method"); 
   }
   public static void Main()
   {
      OldMethod();
      NewMethod();
   }
}

 

以上是关于C# 特性(Attribute)的主要内容,如果未能解决你的问题,请参考以下文章

C#之特性(Attribute)

《Inside C#》笔记 Attribute

C#中Attribute介绍

C#进阶系列17 特性Attribute

Unity常用标签

C#中的特性(Attribute)用途?