如何从字符串“string []”获取.NET数组类型?

时间:2009-11-23 12:23:49

标签: c# arrays reflection

给定字符串"string[]"并要求获取此类的基础类型,可以从以下开始:

private Type getTypeByName(string typeName)
{
    if (typeName.EndsWith("[]"))
    {
           return something; // But what? 
    }

    return Type.GetType(typeName);
}

什么类型的“string []”以及如何反映出它的类型?

显然有一个System.String类型和一个System.Array类型,但我看不出它们如何像“{1}}及其T一样”一起“反映” Nullable<T>方法。

任何有助于打破思维循环的帮助我都会非常感激!

4 个答案:

答案 0 :(得分:8)

你到底是什么问题? Type.GetType工作正常:

Console.WriteLine(typeof(string[]));
var type = Type.GetType("System.String[]");
Console.WriteLine(type);

打印:

System.String[]
System.String[]

很明显,这可以按预期工作。

答案 1 :(得分:2)

在类型上使用GetElementType():

string[] eee = new string[1];
Type ttt = eee.GetType().GetElementType();

ttt的类型为String。

答案 2 :(得分:0)

Type.GetType(“System.String []”)将返回字符串数组类型。无需在输入字符串中检查[]。

您可以通过查看Type.IsArray道具来验证这一点。

答案 3 :(得分:0)

类型是System.String []