21

イミディエイト ウィンドウは、デバッグ プロセス中に現在の状態を調べるときに非常に便利なツールです。この投稿に示されているように、疑問符を使用することで、そこでもう少し多くのことができることを学びました。

ただし、そこでLINQクエリを実行する方法はまだわかりません(ラムダ式を含む)。foreachステートメントの実行にも失敗しました。

次のステートメントを実行する場合:

?(things.Select(thing=>thing.Id);)
?(foreach(var thing in things);)

次のエラーが表示されます。

式にラムダ式を含めることはできません
無効な式の用語 'foreach'

(どのように) イミディエイト ウィンドウでこれらを実行できますか?

VS ギャラリーにもツールがありますが、VS05 と VS08 でしか機能しないと言われています。VS13 や VS15 に適用できるものを探しています。

4

3 に答える 3

8

VS2015 では、ウォッチ ウィンドウとイミディエイト ウィンドウでラムダ式を使用できます。

ウォッチを追加するか、イミディエイト ウィンドウに入力するだけです (デバッグ中thingsにスコープ内にある場合):

things.Select(thing => thing.Id);

結果のリストが表示されます。

これに関するブログはこちら

于 2015-10-22T10:01:17.357 に答える
-1

残念ながら、イミディエート ウィンドウまたはウォッチ ウィンドウからラムダを使用することは不可能のようです。これの技術的な理由は、おそらく、linq クエリが通常は通常の式に変換され、これら 2 つのウィンドウで使用されるトリックではなく、何らかの形で完全なコンパイル手順が必要になるためです。

thing=>thing.Idその部分がラムダ式であることを知らなかった場合。

于 2015-10-22T09:57:53.233 に答える