luk*_*evp 2 c# visual-studio-2015
我有一个类定义如下定义的自定义属性:
[AttributeUsage(AttributeTargets.Property)]
public class MyAttribute : Attribute
{
private string name;
public MyAttribute(string name)
{
this.name = name;
}
}
public class MyClass
{
[MyAttribute("ClassName")]
public string ClassName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio突出显示该行
[MyAttribute("ClassName")]
Run Code Online (Sandbox Code Playgroud)
有了这条消息:
IDE0001:名称可以简化.
它建议将属性定义缩短为My("ClassName"),这不起作用,因为该属性未定义为"My".
此建议似乎基于在可以使用MyAttribute或My的情况下实现默认属性的方式.我如何实现我的自定义属性以接受My或MyAttribute,就像默认属性一样?
通常,当您从属性派生Attribute
时,在使用它时不使用后缀:
public class MyClass
{
[My("ClassName")]
public string ClassName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
它建议将属性定义缩短为My("ClassName"),这不起作用,因为该属性未定义为"My".
(这是编译魔术,它的工作原理)
我如何实现我的自定义属性以接受My或MyAttribute,就像默认属性一样?
你已经做了,你可以使用[MyAttribute("whatever")],它会编译得很好.
| 归档时间: |
|
| 查看次数: |
2670 次 |
| 最近记录: |