7

重複の可能性:
.net の配列型から配列項目型を取得するにはどうすればよいですか

特定の型の配列がある場合、その型が正確に何であるかを知る方法はありますか?

 var arr = new []{ "string1", "string2" };
 var t = arr.GetType();
 t.IsArray //Evaluates to true

 //How do I determine it's an array of strings?
 t.ArrayType == typeof(string) //obviously doesn't work
4

2 に答える 2

12

Type.GetElementType- 派生クラスでオーバーライドされると、現在の配列、ポインター、または参照型によって包含または参照されるオブジェクトの Type を返します。

var arr = new []{ "string1", "string2" };
Type type = array.GetType().GetElementType(); 
于 2012-07-05T15:02:29.467 に答える
1

タイプはコンパイル時に認識されるため、C++ の方法でチェックインできます。このような:

using System;

public class Test
{
    public static void Main()
    {
        var a = new[] { "s" }; 
        var b = new[] { 1 }; 
        Console.WriteLine(IsStringArray(a));
        Console.WriteLine(IsStringArray(b));
    }
    static bool IsStringArray<T>(T[] t)
    {
        return typeof(T) == typeof(string);
    }
}

( 、 をTrue生成False)

于 2012-07-05T15:07:14.470 に答える