0

Typeそのタイプのインスタンスへの参照を保持し、後で初期化するプロジェクトがあります。ただし、コンパイル時の型チェックが必要なので、ITestインターフェイスを実装する型のみを提供できます。アプローチを変えないといけないと思いますが、どうしたらいいのかわかりません。

private static Type currentType = null;

public static void Initalize (Type current){
     currentType = current;
}

public class Test : ITest{}
public class Test2 {}

渡すことは可能であるはずですが、渡すことはできtypeof(Test)ませんtypeof(Test2)

4

2 に答える 2

5

なぜジェネリックを使わないのですか?

private static Type currentType = null;

public static void Initalize <T>() where T: ITest {
     currentType = typeof(T);
}
于 2012-10-29T12:11:01.623 に答える
2

Initializeメソッドを次のように変更する必要があります。

public static void Initialize(ITest current)

または、ジェネリックスを使用してタイプを制約することもできます。

public static void Initialize<T>(T current) where T: ITest
于 2012-10-29T12:12:01.057 に答える