私は座って、それを理解し、理解できない定義を読み、それが何であるかを理解します。
属性は、基本クラスの属性から継承されたクラスです。
属性の本質は、説明の生成に使用されることです。 属性を作成することにより、クラス、フィールド、プロパティ、またはメソッドに報いる独自のプロパティを付与できます。属性は、属性に格納されている情報がメソッドの本体で考慮されない場合、フィールドとプロパティの値およびクラスメソッドの実行に影響しません。 ただし、非常に重要な点があります。プロパティの値はコンパイルされたモジュールに定数として保存されるため、コードの実行中に属性の値を変更することはできません
たとえば、属性を使用すると、タイプの値を分析して、アクションを実行するためのさまざまなスキームを構築できます。
あまり明確ではないので、例:
属性があります:
public class MyAttribute : Attribute // { public int Count { get; set; } // // }
そして、記述された属性を授与し、その値を使用してGetArray関数の結果を形成する特定のクラス:
[MyAttribute{ Count = 3 }] public class IntArrayInitializer { public int[] GetArray() { var type = this.GetType(); // if (Attribute.IsDefined(type, typeof(MyAttribute))) // { var attributeValue = Attribute.GetCustomAttribute(type, typeof(MyAttribute)) as MyAttribute; // return new int[attributeValue.Count]; // } return new int[0]; } }
コードからわかるように、まずクラスの説明を取得し、次に属性の存在を確認し、存在する場合は、属性で指定された要素の数で配列を形成します。
そして今、このクラスを継承し、メソッドを呼び出すときに新しいクラスに異なる属性値を与えて、必要な次元の配列を取得します。
この記事では、属性の一般的で不十分な説明のみを示しますが、それを使用すると、その内容を理解できます。