3

LINQ式ツリーが実行できる最大値はどれくらいですか?

クラスを定義できますか?宣言された名前、修飾子、パラメータータイプ、リターンタイプがすべて含まれているメソッドはどうですか?

プログラムは常にツリー自体を定義する必要がありますか?特定のC#ファイルからツリーを生成することは可能ですか?

4

2 に答える 2

15

C# 3 では、式ツリーは式を表すことができます。したがって、名前。さらに、それらは C# 式のサブセットに制限されています。つまり、代入式やポインター型を含む式はありません。

C# 4 に同梱されるライブラリでは、ステートメント ツリーもサポートするように式ツリーライブラリを拡張しました。ただし、C# 4 はステートメント ラムダを「ステートメント ツリー」に自動的に変換しません。

これは明らかで便利な機能で、C# 4 では実現する時間がありませんでした。仮想的な将来のバージョンで検討します。ステートメント ツリーに関する非常に優れたユーザー シナリオがあれば、ぜひ聞かせてください。

クラス宣言、構造体宣言などを表す、宣言ツリーのすべてに対する明らかな拡張です。C# 言語と式ツリー ライブラリの間に完全な相似性があるとすれば、すばらしいことです。これにより、あらゆる種類の興味深いメタプログラミング シナリオが可能になります。しかし、それはすぐに実現するわけではないので、期待しないでください。それは、決して起こらないかもしれない私の長期的な夢です。

于 2009-09-16T15:18:42.043 に答える