-2

関数で渡された名前でクラスを作成したいと思います。それ、どうやったら出来るの?

基本的に私が意味することは、次のとおりです。

public void CreateClassWithThisName(string name)
{

}

そして、クラスを作成します

class name
{
   //this name is the one passed as parameter in function CreateClassWithThisName
   private Id {get;set}
}
4

1 に答える 1

5

指定された名前でクラスのインスタンスを作成することを意味していると思います。次を使用できます。

Type type = Type.GetType(name);
object instance = Activator.CreateInstance(type);

ただし、次の点に注意してください。

  • name名前空間を含む完全修飾型名である必要があります
  • タイプはmscorlibまたは実行中のアセンブリにある name、アセンブリで修飾されたタイプ名である必要があります
  • これは、ターゲット型にパブリックパラメーターのないコンストラクターがあることを前提としています。Activator.CreateInstanceコンストラクター引数を指定するための他のオーバーロードがあります

Assembly.GetType(string)特定のアセンブリからタイプをフェッチするために使用することもできます。

于 2012-09-03T06:12:45.380 に答える