start.FileName = @"C:/Program Files/xyz/asd -config \"C:/Users/xyz/qwe\""
当我使用上面的代码时,它会在
处给出错误 closing delimiter
“\”unexpected character
。
答案 0 :(得分:2)
字符串说明符前面的@
符号指示C#编译器对字符串使用不同的转义机制,有效地忽略所有标准转义序列并将它们呈现为文本。在字符串说明符的替代形式中使用的唯一转义序列是""
转义序列,它在输出中插入单个"
字符。
尝试使用以下字符串:
start.FileName = @"C:/Program Files/xyz/asd -config ""C:/Users/xyz/qwe""";
或者:
start.FileName = "C:/Program Files/xyz/asd -config \"C:/Users/xyz/qwe\"";
任何一个都有效。或者,因为您的目标是Windows平台:
start.FileName = @"C:\Program Files\xyz\asd -config ""C:\Users\xyz\qwe""";
答案 1 :(得分:0)
http://msdn.microsoft.com/en-us/library/362314fe.aspx
逐字符串的优点是不处理转义序列,这使得它易于编写,例如,完全限定的文件名: C#
@"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt"
要在@ -quoted字符串中包含双引号,请将其加倍:
@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.
答案 2 :(得分:-1)
string line = "C:/Program Files/xyz/asd -config \"C:/Users/xyz/qwe**\"";
Console.WriteLine(line);