C#のType.GetTypeArray()メソッドとは?使い方とサンプルコードを解説
C#のType.GetTypeArray()メソッドは、指定されたオブジェクト配列に含まれる各要素の型(Type)を取得するための静的メソッドです。リフレクション処理などで、配列内の複数オブジェクトの実際の型をまとめて調べたい場合に便利です。
構文
GetTypeArray()メソッドの構文は以下のとおりです。
public static Type[] GetTypeArray (object[] args);
argsパラメータには、型を判定したいオブジェクトが格納された配列を指定します。戻り値として、各要素の型を表すType型の配列が返されます。
例1:基本的な使い方
まずは、数値や文字列など異なる型が混在するオブジェクト配列から、それぞれの型を取得する基本例を見てみましょう。
using System;
using System.Reflection;
public class Demo {
public static void Main(){
Object[] obj = new Object[5];
obj[0] = 10.20;
obj[1] = 20;
obj[2] = 30;
obj[3] = 40;
obj[4] = "tom";
Type[] type = Type.GetTypeArray(obj);
Console.WriteLine("Types...");
for (int i = 0; i < type.Length; i++)
Console.WriteLine(" {0}", type[i]);
}
}出力結果
このプログラムを実行すると、次のような出力が得られます。
Types... System.Double System.Int32 System.Int32 System.Int32 System.String
小数値10.20はDouble型、整数値はInt32型、文字列"tom"はString型として正しく判定されていることがわかります。
例2:decimal型を含む場合
続いて、decimal型(mサフィックス付きの数値リテラル)が混在する場合の例です。
using System;
using System.Reflection;
public class Demo {
public static void Main(){
Object[] obj = new Object[5];
obj[0] = 100m;
obj[1] = 20.98;
obj[2] = 30.788m;
obj[3] = 40;
obj[4] = "jack";
Type[] type = Type.GetTypeArray(obj);
Console.WriteLine("Types...");
for (int i = 0; i < type.Length; i++)
Console.WriteLine(" {0}", type[i]);
}
}出力結果
このプログラムを実行すると、次のような出力が得られます。
Types... System.Decimal System.Double System.Decimal System.Int32 System.String
mサフィックスを付けた値はDecimal型として、通常の小数リテラルはDouble型として区別して判定される点に注目してください。
注意点
- 引数にnullを渡した場合や、配列内の要素にnullが含まれている場合は、ArgumentNullExceptionがスローされます。
- このメソッドはSystem名前空間のTypeクラスに属しており、戻り値のType配列は元の配列と同じ順序・同じ長さになります。
- 個々のオブジェクトの型だけが必要な場合は、GetType()インスタンスメソッドを使うこともできますが、配列全体を一括で処理できるのがGetTypeArray()の利点です。
-
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
-
C#のElementAt()メソッドの使い方をわかりやすく解説
ElementAt()は、C#のSystem.Linq名前空間に含まれる拡張メソッドの一つで、配列やリストなどのシーケンスから、指定したインデックス位置にある要素を取得・表示するために使用します。 基本的な使い方 まず、次のような文字列配列を用意します。 string[] arr = { One, Two, Three, Four, Five }; この配列からインデックス0の要素を取得したい場合は、ElementAt()メソッドにインデックス番号を引数として渡します。 arr.ElementAt(0); サンプルコード 以下は、ElementAt()メソッドを使って特定のインデックスの要素を