2017-02-22 6 views
0

Visual Studioでコードをデバッグしているときに、自分の選択した変数にカーソルを合わせると表示されるオーバーレイをクリックして変数の値を変更できます。値を表示するラベルはテキストボックスに変わり、Enterキーを押すとすぐに割り当てられる新しい値を入力することができます。デバッグ中に自分のタイプの値を変更する

この種のワークフローをサポートするために、自分のタイプで実装する必要があるのは何ですか?現在、Visual Studioは私に、文字列から自分のタイプへの暗黙の変換がないことを叫んでいます。このような暗黙の演算子を追加するとうまく動作しますが、暗黙の変換を自分の型に追加しなくても同じことを達成する別の方法があります(これは誰もコードから呼び出せないように変換をマークしますそれは私が推測する最もクリーンな方法ではありません)をビジネスロジックが要求するものから独立して残しながら、デバッグ中に何かを表示するのと同じように[DebuggerDisplay]のようにしますか?

+1

このようなデバッグは、実際に最後のリゾートタイプのものですが、実際にこれを行う頻度はどれくらいですか? – DavidG

+0

変換を行うために呼び出す関数を指定するための属性が1つだけ必要なメカニズムがあった場合は、それを使用しないでください。 – David

答えて

1

値を表示するラベルがテキストボックスになり、私はすぐに私が入るヒットとして割り当てられます新しい値を入力することができます。

あなたは、コードエディタでデータツールヒントであることを示し回避策は、それは我々がVSのデバッグ時の値を編集し、通常の方法です。私が知っている

他の回避策があること:

(1)natvis拡張子を持つカスタムデバッグビュー。

たとえば、あなたがブログを以下にサンプルのようなカスタムデータ型の型ビジュアライザを作成することができます。ウォッチ・ウィンドウや他の人のような

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

(2)を使用する特定のデバッグウィンドウを、私の理解それは便利ではない、私はツールチップ(あなたが提供する方法)を使うほうが良いということを意味する。

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

は、それが有用な情報やパスを提供することができます願っています。

+0

(1)で提供したリンクはC++に関連しています。このアプローチはC#にも当てはまりますか? – David

+0

@David、良い質問です。私たちはC#プロジェクトから.natvisファイルを読み込むことができません。本当に制限があります。しかし、C#でビジュアライザーを書くことができます:https://msdn.microsoft.com/en-us/library/ms164759.aspx。他のメンバーも、DebuggerTypeProxyを使用して回避策を講じる前に、同様の問題を以前に尋ねました。 http://stackoverflow.com/questions/41764714​​/how-to-use-visual-studio-text-visualizer-for-custom-types。他のより良い回避策は見つかりませんでした。 –

+0

@David、この問題はどうですか?私の以前の提案から有益な情報を得ることができるかどうか?すべてのアップデートは、ここで共有してください:) –

関連する問題