知识点 - Attributes

1.c#预定预定义Attribute引入:
示例:
using System;
public class AnyClass 
{
    [Obsolete(
"Don't use Old method, use New method"true)]
    
static void Old( ) { }
    
static void New( ) { }
    
public static void Main( ) 
    {
        Old( );
    }
}
attribute说明:第一个参数是string类型,是一段关于这个方法的解释性文字;第二个参数是告诉编译器把依然使用这被标识的元素视为一种错误,这就意味着编译器会因此而产生一个警告。
我们编译上面的程序时,会得到如下错误:AnyClass.Old()' is obsolete: 'Don't use Old method,  use New method'
2.自定义Attribute
C#中,attribute类都派生于System.Attribute类。
示例:
using System;
public class HelpAttribute : Attribute
{
    
public HelpAttribute(String Descrition_in)
    {
        
this.description = Description_in;
    }
    
protected String description;
    
public String Description 
    {
        
get 
        {
            
return this.description;       
        }            
    }    
}
[Help(
"this is a do-nothing class")]
public class AnyClass
{
}
按惯例我们是用”Attribute“作为attribute类名的后缀,然而,当我们当我们把attribute绑定到某语言元素时,是不包含“Attribute“后缀的。编译器首先在System.Attribute的继承类中查找该attribute,如果没有找到,编译器会把“Attribute“追加到该attribute的名字后面,然后查找它。



你可能感兴趣的:(attribute)