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 /ライブラリ/ system.activator.createinstance.aspxする
所属していません StackOverflow