5

是否可以通过字符串变量初始化一个类?我有 PHP 代码。

<?php
  $classname = "test";

  $oTest = new $classname();

  class test{
  }
?>

我如何在 C# 中做到这一点?

4

3 回答 3

19
System.Activator.CreateInstance(Type.GetType(className))

然而,问题在于 C# 3.0 是一种静态类型语言。您不能只在返回的对象上调用随机方法。您可以让您可能实例化的类实现一些通用接口并将上述表达式的结果转换为接口,或者手动使用反射来调用返回对象的方法。

于 2009-08-09T21:46:04.770 回答
5

您可以使用 Activator.CreateInstance 方法来实现类似的结果。但是除了类型的完全限定名称之外,您还必须提供程序集名称

var instance = Activator.CreateInstance("SomeAssemblyName","Some.Full.Type.Test");
于 2009-08-09T21:46:57.530 回答
1

您可以使用 Activator.CreateInstance。各种重载的文档在这里:http: //msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx

于 2009-08-09T21:48:11.960 回答