是否可以通过字符串变量初始化类?我有PHP代码。
<?php
$classname = "test";
$oTest = new $classname();
class test{
}
?>
我如何在c#中执行此操作?
答案 0 :(得分:19)
System.Activator.CreateInstance(Type.GetType(className))
然而,问题是C#3.0是一种静态类型语言。您不能只在返回的对象上调用随机方法。您可以让实例化的类实现一些通用接口,并将上述表达式的结果强制转换为接口,或者手动使用反射来调用返回对象上的方法。
答案 1 :(得分:5)
您可以使用Activator.CreateInstance方法来实现类似的结果。但除了类型
的完全限定名称外,还必须提供程序集名称var instance = Activator.CreateInstance("SomeAssemblyName","Some.Full.Type.Test");
答案 2 :(得分:1)
您可以使用Activator.CreateInstance。各种重载的文档在这里:http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx