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

C#のType.GetInterface()メソッドの使い方を徹底解説

C#におけるType.GetInterface()メソッドは、現在のTypeオブジェクトが実装または継承している特定のインターフェースを取得するために使用されるメソッドです。リフレクションを活用したプログラミングにおいて、型が持つインターフェース情報を動的に確認したい場合に非常に便利です。

構文

Type.GetInterface()メソッドには、以下の2つのオーバーロードが用意されています。

public Type GetInterface (string name);
public abstract Type GetInterface (string name, bool ignoreCase);

パラメータの説明

  • name:取得対象となるインターフェースの名前を指定します。
  • ignoreCase:大文字と小文字を区別するかどうかを指定します。trueを渡すと、大文字小文字を無視して検索が行われます。

指定した名前のインターフェースが見つかった場合はそのTypeオブジェクトが返され、見つからない場合はnullが返されます。

使用例1:double型でインターフェースを取得

まず、基本的な使用例を見てみましょう。double型が実装している「IFormattable」インターフェースを取得します。

using System;
public class Demo {
    public static void Main(){
        Type type = typeof(double);
        Type myInterface = type.GetInterface("IFormattable");
        Console.WriteLine("Interface = "+myInterface);
    }
}

出力結果

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

Interface = System.IFormattable

このように、double型がIFormattableインターフェースを実装していることが確認できます。

使用例2:ignoreCase引数を使用した検索

次に、第2引数のignoreCaseにtrueを指定して、大文字と小文字を区別せずにインターフェースを検索する例を見てみましょう。ここではfloat型に対して検索を行います。

using System;
public class Demo {
    public static void Main(){
        Type type = typeof(float);
        Type myInterface = type.GetInterface("IFormattable",true);
        Console.WriteLine("Interface = "+myInterface);
    }
}

出力結果

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

Interface = System.IFormattable

ignoreCaseにtrueを指定することで、大文字・小文字の違いを気にせずインターフェースを検索できることが分かります。

まとめ

  • Type.GetInterface()メソッドは、指定した名前のインターフェースを現在の型から取得する。
  • インターフェースが見つからない場合はnullが返されるため、戻り値のnullチェックを推奨。
  • ignoreCase引数にtrueを指定すれば、大文字小文字を区別しない検索が可能。

リフレクションを使った動的な型操作を行う際に、このメソッドはインターフェースの実装有無を確認する場面などで活躍します。ぜひ実際のコードで試してみてください。

  1. C#のType.GetArrayRank()メソッドの使い方を徹底解説

    C#におけるType.GetArrayRank()メソッドは、配列の次元数(ランク)を取得するためのメソッドです。多次元配列が何次元であるかをプログラム上で確認したい場合に便利な機能です。構文public virtual int GetArrayRank ();このメソッドは、対象の型が配列である場合にその次元数をint型で返します。戻り値の「ランク」とは、配列の角括弧内のカンマの数+1、つまり配列のインデックスの数を表します。使用例1:3次元配列のランクを取得するまずは、3次元のint型配列に対してType.GetArrayRank()メソッドを使用する基本的な例を見てみましょう。using

  2. 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