何かがクラス変数によって定義されているので、どうすれば変数の型をメソッドパラメーターに入れることができますか?例えば:
class MyClass {
private Type _type;
public MyClass(Type type) {
_type = type;
}
public void SomeMethod(_type param) { //... }
public _type OtherMethod() {}
}
つまり、動的型をクラス内の変数に設定し、そのType
変数を他のオブジェクトの型として使用できるという考え方です。
C#でこれを行うことは可能ですか?
編集:
私は自分の質問をより明確にし、なぜそのような機能を求めているのかを説明することにしました。Genericsを試しました。ただし、ジェネリックスの問題は、次のようなクラスのオブジェクトを参照するたびに、クラスの型を宣言する必要があることです。MyClass<TSomeType> param
私のシナリオでは、List<MyClass> dataList
を含むがありますMyClass
。MyClassにジェネリックがある場合、dataListはである必要がありますList<MyClass<TSomeType>>
。この場合、リストは。のみで構成できるため、スタックしますMyClass<TSomeType>
。クラス全体の型を宣言すると、他の種類の型を持つことはできません。これが、クラスの型を変数に格納し、この変数をクラス型のように使用できるように、型を宣言するより動的な方法があるかどうかを知りたい理由です。