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

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

C#におけるType.GetElementType()メソッドは、現在の配列型、ポインタ型、または参照型が格納・参照している要素のType(型情報)を返すために使用されます。例えば、string[]型の配列に対してこのメソッドを呼び出すと、その配列が保持している要素の型であるSystem.Stringが取得できます。

構文

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

public abstract Type GetElementType ();

使用例1:文字列配列の場合

まず、文字列の配列に対してType.GetElementType()メソッドを使用する例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        string[] arr = {"tom", "amit", "kevin", "katie"};
        Type t1 = arr.GetType();
        Type t2 = t1.GetElementType();
        Console.WriteLine("Type = "+t2.ToString());
    }
}

出力結果

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

Type = System.String

この例では、arr.GetType()で配列自体の型(System.String[])を取得し、さらにGetElementType()を呼び出すことで、配列の要素であるSystem.String型を取得しています。

使用例2:多次元配列の場合

次に、多次元配列に対してType.GetElementType()メソッドを使用する例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        Type t1 = typeof(int[,,,]);
        Type t2 = t1.GetElementType();
        Console.WriteLine("Type = "+t2.ToString());
    }
}

出力結果

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

Type = System.Int32

この例では、5次元のint型配列(int[,,,])の型情報から、要素の型であるSystem.Int32を取得しています。このように、GetElementType()メソッドは配列の次元数に関わらず、正しく要素の型を返します。

まとめ

Type.GetElementType()メソッドは、リフレクション処理において配列やポインタ、参照型の要素の型を動的に取得したい場合に非常に便利です。ジェネリックな処理や実行時の型判定を行う際に活用できます。なお、現在のTypeが配列・ポインタ・参照型のいずれでもない場合、このメソッドはnullを返す点にも注意が必要です。

  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