C#让用户创建类实例

Ton*_*ion 0 c# object

如果有一个像'Painter'这样的类,并且需要用户能够创建这个类@ runtime的一个或多个实例,那么最好的方法是什么?

所以每次用户点击按钮时,我们都需要一个新的画家对象?

或者每当用户输入"新画家"时,我们需要一个新的画家实例?

Jon*_*eet 5

你可以Typestring使用中获得Type.GetType.

一旦你有了一个Type对象,你就可以调用Activator.CreateInstance它来实例化它,或者调用它Type.GetConstructors,选择一个合适的构造函数,然后调用它.

Type.GetType顺便说一下,两个"陷阱" :

  • 您必须在类型名称中包含命名空间
  • 除非类型在当前正在执行的程序集中,否则mscorlib您需要指定程序集名称以及版本信息(如果它具有强名称)

如果你有一个对相关程序集的引用,那么Assembly.GetType可以是一个更简单的方法 - 你仍然需要包含命名空间.