繁体   English   中英

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

[英]how to get type of nested class with Type.GetType(string)

我可以创建一个具有完全限定名称的新类,例如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")按字符串获取类型。

Type.GetType(string)的 MSDN 文档为各种类型(通用类型、参数、非托管指针等)提供了一个语法表,包括“父类和嵌套类”。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM