私には2つのクラスがあります:
Class Gold;
Class Functions;
クラスClassGet
にはメソッドFunctions
があり、2つのパラメータがあります。クラスGold
のメソッドの1つのパラメータとしてクラスFunctions
を送信したいと思います。どうしてそれは可能ですか?
例えば:
public void ClassGet(class MyClassName, string blabla)
{
MyClassName NewInstance = new MyClassName();
}
注意:MyClassName
を文字列パラメータとしてメソッドに送信したいと思います。
実装しようとしている関数はすでに存在します(少し異なります)
Activatorクラスを見てください: http://msdn.Microsoft.com/en-us/library/system.activator.aspx
例:
object instance = Activator.Create(className);
またはこのように:
Type type = typeof(MyClass);
MyClass instance = (MyClass)Activator.Create(type);
またはあなたの場合:
public void ClassGet(string MyClassName,string blabla)
{
object instance = Activator.Create(MyClassName);
}
// Call it like:
Gold g = new Gold();
g.ClassGet("MyClass", "blabla");
タイプパラメータをお探しですか?
例:
public void ClassGet<T>(string blabla) where T : new()
{
var myClass = new T();
//Do something with blablah
}
タイプType
のパラメーターとして送信することもできますが、その場合は、リフレクションを使用してインスタンスを作成する必要があります。代わりに、汎用パラメーターを使用できます。
public void ClassGet<MyClassName>(string blabla) where MyClassName : new() {
MyClassName NewInstance = new MyClassName();
}