C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のType.GetInterfaces()メソッドとは?構文と使用例をわかりやすく解説

C#のType.GetInterfaces()メソッドは、現在のType(型)が実装または継承しているすべてのインターフェースを取得するために使用されます。リフレクション処理において、ある型がどのインターフェースに対応しているかを確認したい場合に便利なメソッドです。

構文

GetInterfaces()メソッドの構文は以下のとおりです。

public abstract Type[] GetInterfaces ();

このメソッドは引数を受け取らず、現在のインスタンスが実装または継承しているすべてのインターフェースを表すType[]配列を返します。

例1:float型のインターフェースを取得する

まずはfloat型に対してType.GetInterfaces()メソッドを使用する例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      Type type = typeof(float);
      Type myInterface = type.GetInterface("IFormattable",true);
      Type[] myInterfaces = type.GetInterfaces();
      Console.WriteLine("Interface = "+myInterface);
      Console.WriteLine("All the Interfaces...");
      for (int i = 0; i < myInterfaces.Length; i++)
      Console.WriteLine(""+myInterfaces[i]);
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Interface = System.IFormattable
All the Interfaces...
System.IComparable
System.IFormattable
System.IConvertible
System.IComparable`1[System.Single]
System.IEquatable`1[System.Single]

例2:int型のインターフェースを取得する

次に、int型に対して同じメソッドを使用した例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      Type type = typeof(int);
      Type myInterface = type.GetInterface("IFormattable");
      Type[] myInterfaces = type.GetInterfaces();
      Console.WriteLine("Interface = "+myInterface);
      Console.WriteLine("All the Interfaces...");
      for (int i = 0; i < myInterfaces.Length; i++)
      Console.WriteLine(""+myInterfaces[i]);
   }
}

出力結果

このコードを実行すると、以下の出力が得られます。

Interface = System.IFormattable
All the Interfaces...
System.IComparable
System.IFormattable
System.IConvertible
System.IComparable`1[System.Int32]
System.IEquatable`1[System.Int32]

まとめ

Type.GetInterfaces()メソッドを使うことで、指定した型が実装・継承しているすべてのインターフェースを簡単に一覧取得できます。また、関連メソッドであるGetInterface()を使用すれば、特定の名前のインターフェースだけを取得することも可能です。リフレクションを活用した動的な型操作を行う際に役立つため、ぜひ覚えておきましょう。

  1. C#のType.Equals()メソッドとは?使い方とサンプルコードを解説

    C#のType.Equals()メソッドは、現在のTypeインスタンスが表す基盤となるシステム型が、指定されたObjectまたはTypeの基盤となるシステム型と同一であるかどうかを判定します。リフレクション処理などで型同士を比較したい場合に役立つメソッドです。 構文 public virtual bool Equals (Type o); public override bool Equals (object o); パラメータ o:現在のTypeの基盤となるシステム型と比較する対象となるオブジェクトまたは型を指定します。 戻り値 両方の基盤システム型が同じ場合は true、異なる場合は fa

  2. C#のElementAt()メソッドの使い方をわかりやすく解説

    ElementAt()は、C#のSystem.Linq名前空間に含まれる拡張メソッドの一つで、配列やリストなどのシーケンスから、指定したインデックス位置にある要素を取得・表示するために使用します。 基本的な使い方 まず、次のような文字列配列を用意します。 string[] arr = { One, Two, Three, Four, Five }; この配列からインデックス0の要素を取得したい場合は、ElementAt()メソッドにインデックス番号を引数として渡します。 arr.ElementAt(0); サンプルコード 以下は、ElementAt()メソッドを使って特定のインデックスの要素を