在C#中创建一个对象而不使用新的关键字?

Abh*_*mar 6 c# new-operator

有没有办法在C#中创建一个不使用new关键字的对象,比如class.forname(); 在java中.

我想动态创建一个类的对象.对象创建可以取决于用户输入.
我有一个基类x,它有5个子类(a,b,c,d,e).我的用户输入将是a或b或... e类名.使用这个我需要创建该类的对象.我该怎么做

Kra*_*zek 14

你可以使用Activator类.

Type type = typeof(MyClass);
object[] parameters = new object[]{1, "hello", "world" };
object obj = Activator.CreateInstance(type, parameters);
MyClass myClass = obj as MyClass;
Run Code Online (Sandbox Code Playgroud)

  • 我在那里看到一个`new`关键字.:P (16认同)
  • 应该注意的是,这显然较慢,不应该使用**只是为了避免使用`new`运算符 (5认同)