4

私は次の生の文字列リテラルを持っています:@"some text ""here"" and some more text" これをプログラムの文字列変数に割り当てると、すべて正常に動作します。
しかし、この文字列"some text ""here"" and some more text"を入力して読み取ると、生の文字列として認識されません。

C# にこれを生の文字列として認識させるにはどうすればよいですか? 具体的には、文字列が生の文字列であることを示すために使用される「@」指定子に相当するプログラムは何ですか?

4

3 に答える 3

2

なぜあなたはそれを逃がさないのですか?

"some text \"here\" and some more text"

ここに画像の説明を入力してください

于 2012-02-09T13:14:51.487 に答える
1

指定子に相当するプログラムはありません@指定子はコンパイル時にのみ使用され、逐語的な文字列リテラルをその内部表現に変換します。(ところで、適切な名前はそのままの文字列であり、生の文字列ではありません)。

したがって、str1以下str2は実行時にまったく同じ文字列を表します。

string str1 = "some text \"here\" and some more text";
string str2 = @"some text ""here"" and some more text";

それらの間の唯一の違いは、ソース コードでのみ表示されます。テキスト ファイルから文字列を読み取るときに、プログラムによる変換を適用する必要はありません。

于 2012-02-09T13:24:58.693 に答える
0

生の文字列と言うときは、リテラル文字列を意味すると思います。

http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx

@ 記号を使用したリテラル文字列は、提供されたテキストをそのまま受け取るようにコンパイラに指示しているだけです。

私の知る限り、文字列をその文字列のリテラル バージョンに変換する方法はありません。

しかし、二重引用符を一重引用符に置き換えるコードは簡単に作成できます。

于 2012-02-09T13:25:31.430 に答える