如何在C#中轻松显示字符串中的双引号?

时间:2009-10-20 13:26:26

标签: c# string

如果你有一个包含大量双引号的字符串,

在PHP中你可以这样做:

file.WriteLine('<controls:FormField Name="Strasse" LabelText="Strasse">');

在C#中你必须这样做:

file.WriteLine("<controls:FormField Name=\"Strasse\" LabelText=\"Strasse\">");

在C#中是否有办法在PHP中执行上述操作,例如@“c:\ temp”,您可以这样做,以便不需要双斜杠?

感谢Fredrik ,这使得String.Format中的引号和花括号相当可读:

    file.WriteLine(String.Format(@"<TextBox Text=""{{Binding {0}}}""
 Style=""{{DynamicResource FormularFieldTextBox}}""/>", fieldName));

4 个答案:

答案 0 :(得分:27)

有两种方法可以用C#字符串表示引号:

file.WriteLine("<controls:FormField Name=\"Strasse\" LabelText=\"Strasse\">");
file.WriteLine(@"<controls:FormField Name=""Strasse"" LabelText=""Strasse"">");

答案 1 :(得分:7)

"<controls:FormField Name='Strasse' LabelText='Strasse'>".Replace("'", "\"")

这不是很好,但是唯一的选择。

或@“”“”代替\“你可以使用”“

答案 2 :(得分:1)

我建议避免这样奇怪的方式:

const char doubleQuote = '"';

Console.WriteLine("<controls:FormField Name={0}Strasse{0} LabelText={0}Strasse{0}>", doubleQuote);

答案 3 :(得分:0)

我建议使用资源文件来存储字符串常量。 这增加了优雅和代码可读性。 此外,可以显示引号和特殊字符,而不会弄乱太多的转义序列。

您可以创建资源文件条目,例如

String Name(Key) => FormFieldControl
Value => <controls:FormField Name="{0}" LabelText="{1}">

这可以在像

这样的代码中使用
const string fieldName = "Strasse";
Console.WriteLine(ResourceFile.FormFieldControl, fieldName, fieldName);