如果你有一个包含大量双引号的字符串,
在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));
答案 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);