Ros*_*oss 0 c# attributes custom-attributes
我不知道用什么语法谷歌这个.
考虑这个属性:
[MyAttribute(MyOption=true,OtherOption=false)]
Run Code Online (Sandbox Code Playgroud)
那是什么Name=value部分?我如何在自己的自定义属性中实现它?
您可以通过声明公共实例(非静态)属性或字段来使用它:
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute
{
public string TestValue { get; set; }
}
[My(TestValue = "Hello World!")]
public class MyClass{}
Run Code Online (Sandbox Code Playgroud)
所以它的工作方式几乎就像对象初始化器语法,但()代替{}.
如果为构造函数提供属性参数,则必须先传递参数:
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute
{
public string TestValue { get; set; }
public MyAttribute(int arg)
{}
}
[My(42, TestValue = "Hello World!")]
public class MyClass{}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请阅读本教程.