gpt4 book ai didi

c# - 如何使用 Type.GetType(string) 获取嵌套类的类型

转载 作者:太空狗 更新时间:2023-10-29 20:50:15 28 4
gpt4 key购买 nike

我可以创建一个具有完全限定名称的新类,例如 Namespace.OuterClass.NestedClass。但是尝试使用 Type.GetType("Namespace.OuterClass.NestedClass") 获取类型会返回 null。这是示例代码:

namespace Sample
{
public class Program
{
public class Animal { }
public class Vegetable { }
public class Mineral { }

static public void Test()
{
Object o = new Sample.Program.Vegetable();
Type t = Type.GetType("Sample.Program.Vegetable"); // returns null
Console.ReadKey();
}

static void Main(string[] args)
{
Program.Test();
}
}
}

如何将 Type.GetType 用于嵌套类?

最佳答案

C# 完全限定名称的字符串值在类之间使用 +。使用 Type.GetType("Namespace.OuterClass+NestedClass") 按字符串获取类型。

MSDN documentation for Type.GetType(string)给出各种类型(泛型类型、参数、非托管指针等)的语法表,包括“父类和嵌套类”。

将这些行添加到问题的示例代码中:

string typeName1 = typeof(Sample.Program.Vegetable).FullName;
string typeName2 = typeof(Vegetable).FullName;

将证明字符串类型名称等于Sample.Program+Vegetable

ECMA-335分区 IV 的关联 CLILibrary.xml 提供了此约定的最终详细信息。 ECMA-335 中的 Type.GetType(string) 语法表与 MSDN 文档中使用的相同。

关于c# - 如何使用 Type.GetType(string) 获取嵌套类的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19055020/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com