28

どうやら VS 2008 では、自動プロパティのセッターだけにブレークポイントを設定することはできません。

つまり、次のような自動プロパティを定義した場合:

    public int CurrentFramesize
    {
        get; 
        protected set;
    }

次に、セッター行にブレークポイントを設定しようとすると、自動プロパティ全体がブレークポイントの赤に変わります。

これは通常のプロパティに対しては問題なく機能しますが、自動プロパティがこの特別な (制限的な) 扱いを受ける理由は何ですか? それらは、非表示のバッキング フィールドを持つ通常のプロパティへの単なる構文糖衣以上のものですか?

4

4 に答える 4

33

Visual Studio 2008、2010、2012の使用:

  1. ブレークポイントウィンドウに移動します
  2. 新規->機能の中断…
  3. getには、次のように入力します。ClassName.get_CurrentFramesize()

    セットには、次のように入力します。ClassName.set_CurrentFramesize(int)

ブレークポイントに到達すると「使用可能なソースがありません」が表示されますが、呼び出しスタック内の呼び出し位置が取得されます。

私はここでこの解決策を見つけました:http ://social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a

参照:自動プロパティのデバッグ

于 2011-07-15T22:41:31.017 に答える
2

簡単に言えば、このバグ機能は VS2008 のカッティング ルーム フロアに行き着いたということです。

(より長い答え- 帽子のヒント @jdk)

私たちが持っているのは、vNext で検討されているという漠然とした約束だけです。

于 2010-04-29T21:55:40.403 に答える
1

この機能は、Visual Studio 2015 で実装されています。

http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/14/set-breakpoints-on-auto-implemented-properties-with-visual-studio-2015.aspx

于 2015-05-25T07:58:57.410 に答える
-3

いいえ、それらにブレークポイントを設定することはできませんが、何をチェックしますか? 自動プロパティを格納するための変数は実行時にのみ割り当てられるため、デバッガーが表示/アクセスする変数はありません。

于 2010-04-21T12:04:18.253 に答える