2012-02-27 4 views
41

は、C#で呼ばC#クラス宣言の前にくる大括弧で囲まれたものは何ですか?

[something] 
public class c1 { 

} 

[something]は何ですか?それは何をするためのものか?

+8

属性と呼ばれています。 –

+1

単にそれを右クリックしてください。*定義に移動してください。 – Oliver

+0

.netの\ [角括弧]は重複していますか?(http://stackoverflow.com/questions/2968597/what-is-brackets-in -net) – Joe

答えて

12

これは属性アプリケーション/使用法として知られています。与えられたAttributeのインスタンスを型に関連付けます。これらはユーザ定義可能な項目です。例

[AttributeUsage(AttributeTargets.All)] 
public class ExampleAttribute : System.Attribute { 
    public ExampleAttribute() { } 
} 

のためにこれは今までに属性を配置に適用することができ、属性は

// Assembly level 
[assembly: Example] 

// Class 
[Example] 
public class C1 { 
    // Field 
    [Example] 
    public int m_field; 

    // Method 
    [Example] 
    public void Test() { } 
} 

詳しい場所は可能ですが、うまくいけば、これは全体の一般的なアイデアを得る法的です。また、その属性を呼ば

+0

':' go * after * 'assembly'はできませんか? – svick

+0

@スウィックはいそうすべきです。固定 – JaredPar

2

このチュートリアルをチェックアウトすることができます。 「属性」で終了し、Attributeから継承するクラス:使用すると、1つを作成している場合

public class SomethingAttribute : Attribute { 

} 

AttributeUsageAttributeクラスを検索してください。

+2

属性クラスの名前を 'Attribute'で終えることは規約であることに注意してください。それは要件ではありません。 – phoog

+0

絶対に正しい。条約は可能な限り従うのがよい。 –

関連する問題