24

Offenbar erlaubt VS 2008 nicht, einen Haltepunkt nur auf den Setter einer Auto-Eigenschaft festzulegen.Kann Haltepunkte auf einem Auto-Eigenschaften-Setter nicht festgelegt werden? Warum?

I.e. wenn ich ein Auto-Eigenschaft wie folgt definieren:

public int CurrentFramesize 
    { 
     get; 
     protected set; 
    } 

und dann versuchen, einen Haltepunkt auf der Setter Linie zu setzen, die gesamte Auto-Eigenschaft dreht Breakpoint-rot.

Dies funktioniert gut für normale Eigenschaften, also jede Idee, warum Auto-Eigenschaften erhalten diese spezielle (restriktive) Behandlung? Sind sie mehr als nur syntaktischer Zucker zu normalen Eigenschaften mit einem versteckten Hintergrundfeld?

+0

Sie sind richtig umgesetzt wird. Ich habe das Gleiche bemerkt. –

+4

Antwort von Microsoft http://connect.microsoft.com/VisualStudio/feedback/details/408762/unable-to-set-breakpoint-to-c-automatic-property –

+1

Ich war verzweifelt hoffe, dass Feature würde es in VS2010 :( – bitbonk

Antwort

28

mit Visual Studio 2008, 2010, 2012:

  1. Zum Breakpoint- Fenster
  2. Neu-> Break at Funktion ...
  3. Für die get, Typ: ClassName.get_CurrentFramesize()

    Geben Sie für das Gerät Folgendes ein: ClassName.set_CurrentFramesize(int)

Sie erhalten eine "Keine Quelle verfügbar", wenn der Haltepunkt erreicht wird, aber Sie erhalten den aufrufenden Standort im Aufruf-Stack.

fand ich diese Lösung hier: http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a

Siehe auch: Debugging automatic properties

+3

Irgendwie habe ich deine Antwort für zweieinhalb Jahre verpasst. +1 und akzeptiert! :) –

-2

Nein, Sie können keinen Haltepunkt auf ihnen setzen, aber was würden Sie dann überprüfen? Die Variable für die Speicherung der Auto-Property wird nur zur Laufzeit zugewiesen und daher gibt es keine Variable, auf die der Debugger zugreifen kann.

+11

Vielleicht möchten Sie überprüfen, * wenn * es zugewiesen ist, wenn es scheint, einen falschen Wert von "irgendwo" –

+0

@Hans Kesting: Spot on. Der CLR-Debugger hat nicht * Daten * Breakpoints, also wenn das unterstützt würde, wäre es das nächstbeste. –

2

Die kurze Antwort ist: Diese Bug Funktion endete auf dem Schneideraumboden für VS2008.

(Longer answer - Hut Spitze @jdk)

Alles, was wir haben, ist eine vage Versprechen, dass es für vNext betrachtet hat wird.