この例では、「型または名前空間名 'MyType' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)」
using MyType = System.Func<System.Int32, System.Tuple<System.Int32, MyType>>;
このような再帰型を宣言することはまったく可能ですか?
この例では、「型または名前空間名 'MyType' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)」
using MyType = System.Func<System.Int32, System.Tuple<System.Int32, MyType>>;
このような再帰型を宣言することはまったく可能ですか?
いいえ、それは不可能だと思います。エイリアスを割り当てる前に、ステートメントの右側をusing
実数型に解決する必要があります。あなたの場合、右辺を解決するために、コンパイラはエイリアスを完全に定義する必要があります...これには、右辺を解決する必要があります。この再帰的な問題には終わりがないので、コンパイラは明らかに気にしません。
ここでの問題をより明確にするために、コンパイラがエイリアスをコンパイルできたと仮定しましょう。私はこれを行いました:
MyType mytype = x => Tuple<int, MyType>.Create(x, ???);
戻り値を定義するために、関数の本体に何を入れることができますか? 最終的には、どこかに構築可能な型を返してもらう必要があります。