簡體   English   中英

在c#中用字符串變量初始化一個類?

[英]initialize a class by string variable in c#?

是否可以通過字符串變量初始化類? 我有PHP代碼。

<?php
  $classname = "test";

  $oTest = new $classname();

  class test{
  }
?>

我怎么在c#中這樣做?

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

然而,問題是C#3.0是一種靜態類型語言。 您不能只在返回的對象上調用隨機方法。 您可以讓實例化的類實現一些通用接口,並將上述表達式的結果強制轉換為接口,或者手動使用反射來調用返回對象上的方法。

您可以使用Activator.CreateInstance方法來實現類似的結果。 但除了類型的完全限定名稱之外,您還必須提供程序集名稱

var instance = Activator.CreateInstance("SomeAssemblyName","Some.Full.Type.Test");

您可以使用Activator.CreateInstance。 各種重載的文檔在這里: http//msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM