1

StringBuilderオブジェクトがあり、そのAppend()メソッドを使用して、この文字列全体を追加したいと考えています。

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

そのため、「@」を使用して、このように文字列全体をコピーして貼り付けましたが、「; expected」、「InvalidExpression'<'」などのエラーが多く発生します。

myString.Append(@"COPY-PASTED-THAT_WHOLE-STRING");

この文字列を文字列ビルダーオブジェクトに追加する正しい方法は何ですか?

ありがとうございました。

4

5 に答える 5

6

@文字列の前に文字を付ける場合でも、文字をエスケープする必要があります。"そうしないと、文字列リテラルの終わりとして解釈されます。

編集:

例えば

var entity = @"<!ENTITY xsd ""http://www.w3.org/2001/XMLSchema#"">";
于 2012-08-08T14:47:10.057 に答える
3

貼り付ける文字列内の二重引用符(")は、のように2つの連続する二重引用符に置き換えてエスケープする必要があります""。使用するコツは次のとおりです。

  • 文字列をメモ帳の新しいインスタンスに貼り付けます
  • "すべての二重引用符( )を2つの二重引用符( "")に置き換えます
  • コンテンツを選択してメモ帳からクリップボードにコピーし直します
  • @"…"コード/テキストエディタに貼り付けます

C#ドキュメントから:

逐語的な文字列リテラルでは、区切り文字の間の文字は逐語的に解釈されますが、唯一の例外は 引用符-エスケープシーケンスです。

于 2012-08-08T14:58:57.927 に答える
1

構文を使用し@て、複数の行を追加できます。"ただし、を使用して文字列内のsをエスケープする必要があります""

例えば

@"<Ontology xmlns=""http://www.w3.org/2002/07/owl#"""

それらをエスケープしない場合、C#は引用符を文字列の終わりとして扱います。

于 2012-08-08T14:49:48.463 に答える
1

他の人が言っているように、1つのオプションは、すべての二重引用符(")を二重二重引用符()でエスケープすること""です。

XMLブロックをリテラル文字列として追加するときにコードが読みやすくなるため、私が好むのは、二重引用符ではなく一重引用符を使用することです。XMLファイルをテキストエディタに入れて、二重引用符のすべてを一重引用符(')に置き換えます。

もう1つのオプションは、XMLリテラルがそれほど短くないため、それをファイルに入れて、実行時にそのファイルを読み込むことです。

于 2012-08-08T14:54:13.217 に答える
1

あなたもこのようにそれらを逃れることができます...

@"<Ontology xmlns=\"http://www.w3.org/2002/07/owl#\""
于 2012-08-08T16:56:25.403 に答える