一、C#自带特性

1.AttributeUsage特性(自定义特性的特性)

[AttributeUsage(validon,AllowMultiple=allowmultiple,Inherited=inherited)]

(1)validon表示 特性可以提供给什么类型

All  可以对任何应用程序元素应用属性
Assembly  可以对程序集应用属性
Class  可以对类应用属性
Constructor  可以对构造函数应用属性
Delegate   可以对委托应用属性
Enum  可以对枚举应用属性
Event  可以对事件应用属性
Field  可以对字段应用属性
GenericParameter  可以对泛型参数应用属性 目前,此属性仅可应用于 C#、Microsoft 中间语言 (MSIL) 和已发出的代码中
Interface  可以对接口应用属性
Method  可以对方法应用属性
Module  可以对模块应用属性 Module 引用的是可移植可执行文件(.dll 或 .exe),而不是 Visual Basic 标准模块
Parameter   可以对参数应用属性
Property  可以对属性 (Property) 应用属性 (Attribute)
ReturnValue  可以对返回值应用属性
Struct  可以对结构应用属性,即值类型

//表示该属性可以给类和方法用
AttributeTargets.Class| AttributeTargets.Method

(2)AllowMultiple 可选

AllowMultiple=true 表示可以和其他特性叠加

(3)Inherited 可选

AllowMultiple=true 是否可以被继承

 

2.Conditional特性

调用的方式是否在debug或者release下执行

class Program
{
static void Main(string[] args)
{
Program program = new Program();
program.fuc();
}
//只有release下才执行
//[Conditional("RELEASE")]
//只有debug下才执行
[Conditional("DEBUG")]
void fuc()
{
Console.Write("OK");
}
}

 

3.Obsolete

标记方法过时

(72)C# 特性_泛型

 

 还可以添加第二个参数,参数2是bool值

参数2为true时,编译时直接报错,不允许编译,直接报错

(72)C# 特性_构造函数_02

 

 

(72)C# 特性_字段_03

 

二、Attribute类