3

文字列を生成するために、Visual c#2010でコードを記述しています。この文字列には、円記号\とスピーチマーク"が含まれている必要があります。

私はこれを行うために次の方法を試しました:

string StringOutputVariable;
string StringVariable = "hello world";
StringOutputVariable = "\"C:\\Program Files\\some program\\some program.exe\" " + StringVariable;

string StringOutputVariable;
string StringVariable = "hello world";
StringOutputVariable = @"""C:\Program Files\some program\some program.exe"" " + StringVariable;

ただし、どちらもエスケープ文字を出力文字列に入れます。

\ "C:\\ Program Files \\ some program \\ some program.exe \" hello world

\ "C:\\ Program Files \\ some program \\ some program.exe \" hello world

出力したいのは:

"C:\ Program Files \ some program \ some program.exe" hello world

コードがエスケープ文字を文字列に出力するのはなぜですか?

よろしくお願いしますグラハム

4

4 に答える 4

2
StringOutputVariable = "\"" +
        @"C:\Program Files\some program\some program.exe\" + "\" " + StringVariable;
于 2013-01-24T12:23:51.503 に答える
2

デバッガーで文字列を見ていると思います。デバッガーは、文字列を文字列リテラルであるかのように表示します。つまり、引用符と円記号をエスケープします。文字列は意図したとおりです。

文字列をコンソールに印刷するか、フォームのどこかに置くだけで簡単に確認できます。

于 2013-01-24T12:24:05.513 に答える
1

これを試して:

string path = @"C:\Program Files\some program\some program.exe";

string result = string.Format("{0}{1}{0} hello world", "\"", path);

// you can check it: MessageBox.Show(result);
于 2013-01-24T12:26:01.640 に答える
1

デバッガーは、文字列がある場合は文字列を表示しますstring literals

このようにしてみてください。

    string StringOutputVariable;
    string StringVariable = "hello world";
    StringOutputVariable = "\"" + @"C:\Program Files\some program\some program.exe\" + "\"" + StringVariable;
    Console.WriteLine(StringOutputVariable);

これがDEMOです。

出力は次のとおりです。

"C:\Program Files\some program\some program.exe\"hello world
于 2013-01-24T12:26:05.093 に答える