2010-12-10 49 views
113

Existe-t-il un moyen de définir un point d'arrêt sur setter/getter dans une propriété implémentée automatiquement?Débogage des propriétés automatiques

int Counter { get; set; } 

autres que le changement à la propriété standard (je le fais de cette façon, mais de faire que je dois changer et recompiler ensemble du projet)

+2

Quel IDE travaillez-vous? Visual Studio? (Je suggère que vous ajoutiez un tag correspondant à votre question, puisque cela est en fait plus lié à un IDE particulier qu'au langage C# lui-même.) – stakx

+4

@stakx dans le monde .NET nous avons un IDE par défaut :) – Stilgar

+1

@Stilgar, I J'en suis conscient, j'utilise VS moi-même, après tout. Mais "default" ne signifie pas que c'est le seul, ni que * tout le monde * l'utilise. Comme il s'agit d'une question d'EDI, il est important de savoir quel EDI nous regardons ici. D'où mon commentaire précédent. – stakx

Répondre

197

l'aide de Visual Studio 2008, 2010, 2012, 2013:

  1. Aller à la fenêtre Breakpoint
  2. Nouveau -> Pause à la fonction ...
  3. Pour le get, tapez: ClassName.get_Counter()

    Pour le set, tapez: ClassName.set_Counter(int)

Vous obtiendrez un "Aucune source disponible" lorsque le point d'arrêt est atteint, mais vous obtiendrez l'emplacement appelant dans la pile d'appels.

Je trouve cette solution here on MSDN

+0

Briliant. Merci. Je n'ai plus besoin de changer les propriétés automatiques en propriétés standard (avec champ). Et pas plus de recompilation :) –

+4

Je souhaite que je pourrais upvote ceci deux fois! –

+9

cela fonctionne également pour les constructeurs par défaut. utilisez 'ClassName.ctor' –

0

points d'arrêt où vous définissez la propriété ou obtenir propriété, pas d'autre moyen.

vous pouvez le faire en Trouver toutes les références Options

Et comme il est seulement stocker des valeurs et ne pas tout code en partie setter alors qu'est-ce que vous déboguer?

+2

oui, mais que se passe-t-il lorsque vous l'utilisez par exemple dans 20 endroits? Et chaque nouveau point d'arrêt ralentit le processus de débogage. Ou, que se passe-t-il si l'accès à la propriété est fait par framework (par exemple la sérialisation)? –

+1

Points de rupture conditionnels. Mettez le point d'arrêt, faites un clic droit et attribuez-lui une condition ... – Phill

6

Si j'étais vous, je ferais temporairement de la propriété une propriété standard soutenue par un champ interne ... définissez vos points d'arrêt, puis vous pourrez la changer après.