これは属性によって制御されていません。これはデバッガの固有の機能です。
この機能の根底にある理由は、ユーザーによる望ましくない機能評価を防止するためです。 Func Evalsはデバッガでは危険な動作であり、プログラムの状態が著しく遅くなったり破損したりする可能性があります。デバッガは、誤ってデバッグ経験を低下させる可能性のある追加の関数を実行しないように注意しています。
watch/locals/autoウィンドウに関数が発生する可能性のある項目があり、デバッガが関数の実行を信じないと、値がグレー表示され、更新ボタンが表示されます値の列。そのボタンをクリックすると、デバッガに「実際にその式を評価してはいけません」と伝えられます。
これはデバッガで発生する理由はたくさんあります。次の2は最も可能性が高いですが。
暗黙的特性評価は無効になっています
ツール - >デバッガ - >オプション - >は、この値はオフになっている場合は、自動評価しないでください暗黙の特性評価が
、デバッガを言っているの有効化プロパティ。フードの下のプロパティは単に関数呼び出しです。通常は、通常の関数呼び出しよりも安全ですが、必ずしもそうではありません。
ただし、ウォッチウィンドウに直接入力することでプロパティの評価を強制することもできます。行に2を入力すると、最初の値は「失効」になります。これは、ウォッチウィンドウに2番目の式を入力すると、他のすべての式が再評価されるためです。どうして?いずれかの表現を評価する行為が他の表現の結果を変更した可能性があるためです。
暗黙のfunc evalがオフになっているため、最初のプロパティは自動評価されず、強制的に実行する必要があります。
のFunc評価およびステップ
あなたは関数の評価を行い、ウォッチウィンドウに式を追加して、ステップの操作を行う場合は、値がウォッチウィンドウで「staled」されます。
これは多くの理由から行われていますが、これは最も重要な理由の1つです。ユーザーがウォッチウィンドウに多くの式を入力するのは非常に一般的です。関数評価を行うことは間違いありません。これらはあまり遅くない。しかし、あなたがいくつかのコードをすばやく進めようとしているとし、ウォッチウィンドウで10個の機能を確認したとします。それはすぐに足を伸ばし、あなたのステッピング体験を大幅に低下させます。だから、funcのevalsは自動的に再評価されません。
私はマウスを動かすべきではなく、モックのプロパティを評価することによって、いくつかのデバッグセッションを台無しにしました。それは私が窓から設定した期待を投げた。 –