チャレンジ: (Tとして任意の型を使用して)以下のクラスのインスタンスを作成してください:不可能な再帰的な汎用クラス定義ですか?
class Foo<T>
where T : Foo<T>
{
}
あなたが好きな任意の技術を使用することができます。プレーンな "新しいMyClass ..."、反射を使用して、MSILをハッキングします。
チャレンジ: (Tとして任意の型を使用して)以下のクラスのインスタンスを作成してください:不可能な再帰的な汎用クラス定義ですか?
class Foo<T>
where T : Foo<T>
{
}
あなたが好きな任意の技術を使用することができます。プレーンな "新しいMyClass ..."、反射を使用して、MSILをハッキングします。
static class Program {
static void Main() {
Foo<Bar> foo = new Foo<Bar>();
}
}
class Foo<T> where T : Foo<T> {}
class Bar : Foo<Bar> {}
パーフェクト........ –
または単に 'new Bar()'。 –
ハハクール!私は実際にこれが可能だとは思わなかった! Hehe。私は訂正した。本当に素敵です! :) –
達成したいことについての洞察を与えることで、より良い代替回答が得られる場合があります。 –
[再帰的ジェネリック型]の複製が可能です(http://stackoverflow.com/questions/647533/recursive-generic-types) – Amber
可能な宿題ですか? – Carsten