none
デバッグ中のツールチップやウォッチウィンドウで文字列のエスケープを表示させたくない RRS feed

  • 質問

  • VS2015 Community Update 3を使用しています。

    Visual Studioでの文字列のウォッチではエスケープ文字を使用した形式で表示されますが、見にくいので通常の形式で表示させたいのですが、できないでしょうか。

    ウォッチ式の表示形式を操作する方法は色々あるようですが、エスケープを無効化するような機能が見つかりませんでした。

    テキストビジュアライザで見れない事もないのですが...

    2016年9月9日 16:52

回答

  • ウォッチ式の表示形式を操作する方法は色々あるようですが、

    とのことですが、以下のようなことではないのでしょうか?

    C# の書式指定子
    https://msdn.microsoft.com/ja-jp/library/e514eeby(v=vs.140).aspx

    例えば、
     var a = @"\abc";
    における a をウォッチすれば、"\\abc"と表示されますが、a,nq とすれば \abc と表示されます。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク Yuki Nishina 2016年9月14日 14:26
    2016年9月12日 0:59
    モデレータ
  • https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=DebuggerDisplay

    DebuggerDisplay を使用して、

    [DebuggerDisplay("{DebuggerDisplay,nq}")]

    のような感じで指定すれば、よさそうな気がします。

    • 回答としてマーク Yuki Nishina 2016年9月14日 14:26
    2016年9月12日 2:24

すべての返信

  • ウォッチ式の表示形式を操作する方法は色々あるようですが、

    とのことですが、以下のようなことではないのでしょうか?

    C# の書式指定子
    https://msdn.microsoft.com/ja-jp/library/e514eeby(v=vs.140).aspx

    例えば、
     var a = @"\abc";
    における a をウォッチすれば、"\\abc"と表示されますが、a,nq とすれば \abc と表示されます。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク Yuki Nishina 2016年9月14日 14:26
    2016年9月12日 0:59
    モデレータ
  • Visual Studio共通フォーラムですが、質問の言語は何でしょうか?

    例えばC++言語でunsigned char*型のデータが16進ダンプになって読み辛いということでしたらchar*にキャストすべきです。

    # というようにデバッガー全般のように見えて、実は言語依存する話題だったりしませんか?

    2016年9月12日 2:02
  • 質問者さんの言う「文字列のエスケープ」というのは、例えば VB.NET の改行コードの場合 vbCrLf のことで、VS2015 ではそれがそのまま以下のように表示されるのが見難いということでしょうか?

    注:上の画像は以下のスレッドで Tak1wa さんが貼られた画像です。

    改行を含む文字列をExcuteReaderで読み込むとVBのコードに変換される
    https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/46cc7b03-63e7-43c5-b07b-a807ca443b72/excutereadervb?forum=vbgeneralja

    2016年9月12日 2:19
  • https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=DebuggerDisplay

    DebuggerDisplay を使用して、

    [DebuggerDisplay("{DebuggerDisplay,nq}")]

    のような感じで指定すれば、よさそうな気がします。

    • 回答としてマーク Yuki Nishina 2016年9月14日 14:26
    2016年9月12日 2:24
  • 追記

    言語はC#です。

    エスケープというのは \ が \\ のように表示されたり " が \" と表示される類のものです。

    2016年9月14日 14:01
  • 望んでいた通りの動作ができました。

    ありがとうございます。

    ところで、マウスポインタを重ねた時のツールチップでもできないでしょうか?

    2016年9月14日 14:03
  • 済みません、C++は未確認でしたが、C#について質問でした。
    2016年9月14日 14:05
  • 済みません、VBは未確認でしたが、C#でのエスケープについてでした。
    2016年9月14日 14:06
  • ありがとうございます。

    クラスのメンバを見るとき等には有効な方法ですね。

    願わくばローカル変数等にも使いたいのと、自分の使っているVSでどのプロジェクトを開いても同じように表示されるようにできないものかと思っています。
    (環境オプションのように)

    2016年9月14日 14:23