我是C#的新手并编写了一些自动化框架。我想根据条件动态初始化一个类。
我根据条件将类的名称作为字符串。 例如:“车辆_”+ typeOfvehicle =>运行时间可能是Vehicle_2Wheeler或Vehicle_3Wheeler或Vehicle_4Wheeler。
我现在正在使用if,else语句。但是如果我可以用我想要动态的类的类来初始化类,那就更好了。
我想我需要使用Reflection API但不知道如何实现这一点。
如果有人对此有所了解,请告诉我。
答案 0 :(得分:3)
在C#Type.GetType(“Truck”)中将返回一个你可以实例化的Type
var type = Type.GetType("MyProject.Truck");
var instance = (Vehicle)Activator.CreateInstance(type);
虽然如果你在编译时不知道具体的类型,请不要使用对象,动态或基类。
传递args:
Activator.CreateInstance(type, arg1, arg2);