2015-11-16 58 views
2

我有這樣定義的自定義屬性的類:此消息CustomAttribute名稱可以簡化

[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; } 

} 

Visual Studio中凸現線

[MyAttribute("ClassName")] 

IDE0001 :名稱可以簡化。

它建議將屬性定義縮短爲My(「ClassName」),由於該屬性未定義爲「我的」,因此不起作用。

此建議似乎基於默認屬性的實現方式,可以使用MyAttribute或My。我如何實現我的自定義屬性來接受My或MyAttribute,比如默認屬性呢?

回答

5

通常,當你從屬性得到你不使用它時使用後綴Attribute

public class MyClass 
{ 
    [My("ClassName")] 
    public string ClassName { get; set; } 
} 

它建議縮短屬性定義我的(「類名」)不工作因爲該屬性未被定義爲「我的」。

(它的編譯器的魔力,和它的作品)

我將如何實現我的自定義屬性來接受我的或MyAttribute喜歡默認的屬性呢?

你已經做了,你可以使用[MyAttribute("whatever")],它會編譯得很好。

+0

Erik - 它確實有效!我認爲我的智能識別中出現了一個短暫的打嗝,它強調了「我的」。感謝您的快速反應,併爲我設定了直線。 – lukevp