複数のフィールドに同じ値を割り当てることもできます。その場合は、リフレクションや文字列変換を行うために、いずれかの値をプライマリ列挙値としてマークしておく必要があります。(キャストは必要ありません)。メソッドや、その列挙型の基となる型に定義されている任意のメソッドを呼び出すことができます。versa).また、列挙型には次のような制限があります。enumerations:独自のメソッドは定義できません。methods.インターフェイスを実装できません。interfaces.プロパティまたはイベントを定義できません。events.列挙型は、ジェネリック型に入れ子にされているという理由だけでジェネリックである場合を除き、ジェネリックにはなりません。列挙型は、独自の型パラメーターを持つことができません。それを囲むすべてのジェネリック型の型パラメーターを含むため、独自の型パラメーターは持ちませんが、ジェネリックです。トピックの「入れ子にされた型」を参照してください。フィールドと呼ばれる特別な種類の列挙型を表します。フィールドを区別しませんが、言語の中にはそれらを区別するものもあります。フィールドではビットごとの演算子を使用して名前のない値を生成できますが、列挙型ではビットごとの演算子は使用できません。一意の要素のリストに使用されます。ような、特性や数量を組み合わせて示すリストに使用されます。フィールドと通常の列挙型を両方とも使用する方法を次の例に示します。関係を指定するコントラクトを定義します。機能を実装するために使用されます。メンバーの機能を定義するインターフェイスを実装する型に依存します。これは、インターフェイスを実装するクラスまたは構造体が、そのインターフェイスで宣言されている抽象メンバーの定義を提供する必要があることを意味します。以上の他のインターフェイスも同時に実装するように要求できます。interfaces.インターフェイスには、次のような制限があります。accessibility.インターフェイスでコンストラクターを定義することはできません。constructors.インターフェイスでフィールドを定義することはできません。fields.インターフェイスで定義できるのはインスタンスのメンバーだけです。静的メンバーを定義することはできません。members.各言語には、メンバーの実装をそのメンバーを要求するインターフェイスに割り当てるための規則があります。これは、複数のインターフェイスで同じシグネチャを持つメンバーを宣言でき、それらのメンバーが別個の実装を持つことができるためです。関数ポインターと類似の目的で使用される参照型です。ハンドラーとコールバック関数に使用されます。メソッドまたは静的メソッドを表すことができます。signature.デリゲートのパラメーターにメソッドのパラメーターよりも限定的な型が指定された場合、両者のパラメーター間に型の互換性があると見なされます。これによって、デリゲートに渡された引数が、メソッドに対して安全に渡されることが保証されます。method.同様に、メソッドの戻り値の型の制限がデリゲートの戻り値の型より多いと、メソッドの戻り値がデリゲートの戻り値の型に安全にキャストされることが保証されるため、デリゲートの戻り値の型とメソッドの戻り値の型には互換性があります。型の戻り値を持ったメソッドを表すことができます。MethodInfo)」を参照してください。デリゲートは、メソッドにバインドされる以外にも、オブジェクトにバインドされる場合もあります。パラメーターを表し、デリゲートが呼び出されるたびにメソッドに渡されます。目の仮パラメーターとして渡され、デリゲートのシグネチャは、その残りのパラメーターと完全に一致している必要があります。詳細およびプログラム例については、「System.Delegate」を参照してください。言語では、これらの型からの継承は許可されていません。代わりに、デリゲートを宣言するためのキーワードが用意されています。継承するため、デリゲートには呼び出しリストがあります。これは、デリゲートが表し、デリゲートが呼び出されたときに実行されるメソッドのリストです。リストのすべてのメソッドは、デリゲートが呼び出されたときに指定される引数を受け取ります。invoked.注意デリゲートに戻り値が含まれていても、呼び出しリストに複数のメソッドが含まれているデリゲートに対しては、戻り値は定義されません。つのメソッドのみを表すため、デリゲートを作成し、呼び出す以外の処理は必要ありません。取得したりする操作をサポートしています。デリゲートに対して、これらのメソッドを使用する必要はありません。ハンドラーの追加および削除に使用する構文が用意されているためです。Definitions型定義には、次のものが含まれます。members.属性Attributes属性を使用して、ユーザー定義のメタデータを追加できます。属性の最も一般的な用途は、型についての補足的な情報をそのアセンブリに保存したり、型のメンバーの動作をデザイン時または実行時環境で変更したりすることです。属性を使用できる言語にはそれぞれ、言語要素に属性を適用するための固有の構文があります。属性はほぼすべての言語要素に適用できます。Accessibilityすべての型には、他の型からのアクセシビリティを制御する修飾子があります。ランタイムによってサポートされる型のアクセシビリティについて次の表で説明します。すべてのアセンブリから型にアクセスできます。同じアセンブリ内からだけ型にアクセスできます。ドメインによって決まります。ドメインの両方によって決定されます。ドメインを上回ることはできません。自体も型である可能性があります)。テキストとの積集合になります。派生した任意の型との積集合になります。テキストとの積集合になります。