2

この例では、「型または名前空間名 'MyType' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)」

using MyType = System.Func<System.Int32, System.Tuple<System.Int32, MyType>>;

このような再帰型を宣言することはまったく可能ですか?

4

2 に答える 2

1

いいえ、それは不可能だと思います。エイリアスを割り当てる前に、ステートメントの右側をusing実数型に解決する必要があります。あなたの場合、右辺を解決するために、コンパイラはエイリアスを完全に定義する必要があります...これには、右辺を解決する必要があります。この再帰的な問題には終わりがないので、コンパイラは明らかに気にしません。

ここでの問題をより明確にするために、コンパイラがエイリアスをコンパイルできたと仮定しましょう。私はこれを行いました:

MyType mytype = x => Tuple<int, MyType>.Create(x, ???);

戻り値を定義するために、関数の本体に何を入れることができますか? 最終的には、どこかに構築可能な型を返してもらう必要があります。

于 2012-05-05T22:37:45.313 に答える