默认情况下特性是应用于跟随其后的对象的,因此在许多时候,在使用特性时都会省略表示特性目标的关键字。以下是特性应用于目标对象时的完整格式。
[<目标>:<特性列表>]
特性目标关键字及相关说明:
- assembly —— 表示特性将应用于当前程序集,通常放在程序集中命名空间或所有类型定义之前。
- module —— 用于当前模块,该特性用得比较少。
- field —— 该特性用于字段,如果特性后紧跟着字段的声明代码,则该关键字可以省略。
- event —— 特性用于事件,默认情况下也可以省略。
- method —— 该特性用于方法,也可以用于属性中的get和set访问器,该特性用得较少。
- param —— 表示特性用于方法中的参数或属性定义中的set访问器中的参数(value),默认情况下该关键字也可以省略。
- property —— 指示特性用于属性,默认情况下也可以省略。
- type —— 表示特性用于类型,如类、结构、委托、枚举等。默认情况下也可以省略。
- return —— 特性用于方法的返回值,或者属性中get访问器的返回值。由于无法在返回值前面附加特性声明,所以,若要为返回值应用特性,retrun关键字不能省略。
例如,若要为方法的返回值应用特性,应如下:
[return:MarshalAs(UnmanagedType.SysInt)]
public int Compute()
{
return 0