2017-02-22 1 views
0

Debuggen Wenn ich Code bin Debuggen in Visual Studio, ich kann Werte von Variablen ändern auf der Overlay durch Klicken auf das erscheint, wenn ich über meine Variable Wahl schweben. Die Beschriftung, die den Wert anzeigt, wird zu einem Textfeld und ich kann einen neuen Wert eingeben, der zugewiesen wird, sobald ich Enter drücke.ändern Wert meiner eigenen Art, während

Was habe ich in meiner eigenen Art zu implementieren, um diese Art von Workflow zu unterstützen? Zur Zeit schreit Visual Studio mich an, dass es keine implizite Umwandlung von String zu meinem Typ gibt. Wenn ich einen solchen impliziten Operator hinzufüge, funktioniert es gut, aber gibt es eine andere Möglichkeit, dasselbe zu erreichen, ohne die implizite Konvertierung zu meinem Typ hinzufügen zu müssen (gut, ich könnte die Konvertierung als [Obsolete] markieren, so dass niemand sie aus dem Code aufrufen kann) das ist nicht die sauberste Art und Weise, die ich denke) genau wie [DebuggerDisplay] kann erreichen, etwas anderes während des Debuggen anzuzeigen, während ToString() unabhängig von was Geschäftslogik Anforderungen?

+1

Debuggen wie dieses ist wirklich Last-Resort-Art Zeug, wie oft müssen Sie das wirklich tun? – DavidG

+0

Wenn es einen Mechanismus gibt, der nur ein Attribut benötigt, um zu sagen, welche Funktion aufgerufen werden soll, um die Konvertierung durchzuführen, dann warum nicht verwenden ... – David

Antwort

1

Das Label, das den Wert zeigt verwandelt sich in ein Textfeld, und ich kann einen neuen Wert eingeben, sobald zugewiesen bekommt, wie ich die Eingabetaste drücken.

Die Abhilfe Sie zeigen die Daten Tooltips im Code-Editor ist, ist es die übliche Art, wie wir den Wert bei VS Debuggen bearbeiten.

Andere Abhilfen ich weiß, ist, dass:

(1) Individuelle die Debug-Ansicht mit der natvis Erweiterung.

Zum Beispiel könnten Sie einen Typ-Visualizer für einen benutzerdefinierten Datentyp wie die Probe in der folgenden Blog erstellen:

https://blogs.msdn.microsoft.com/vcblog/2012/07/12/debugger-type-visualizers-for-c-in-visual-studio-2012/

(2) bestimmte Debug-Fenster verwenden wie beobachten Fenster oder andere, aber mein Verständnis Es ist nicht praktisch, ich meine, dass die ToolTips (die Art, wie Sie bereitstellen) besser wäre.

https://msdn.microsoft.com/en-us/library/aa6fy2x5(v=vs.120).aspx

Hoffe, dass es nützliche Informationen oder einen Weg bieten könnte.

+0

Der Link, den Sie unter (1) angegeben haben, bezieht sich auf C++. Gilt der Ansatz auch für C#? – David

+0

@David, gute Frage. wir können die .natvis-Datei nicht aus den C# -Projekten laden, es hat wirklich eine Einschränkung. Aber wir können einen Visualizer in C# schreiben: https://msdn.microsoft.com/en-us/library/ms164759.aspx. Andere Mitglieder haben das ähnliche Problem bereits zuvor mit der Problemumgehung, die nur den DebuggerTypeProxy verwendet, gestellt. http://stackoverflow.com/questions/41764714/how-to-use-visual-studio-text-visualizer-for-custom-types. Es wurde keine andere bessere Problemumgehung gefunden. –

+0

@David, was ist mit diesem Problem? Ob du nützliche Informationen von meinen vorherigen Vorschlägen erhalten könntest? Irgendein Update, fühlen Sie sich frei, teilen Sie es hier :) –

Verwandte Themen