C# 内插字符串中的引号 意外字符 \0022

C# quotes in interpolated string Unexpected character \0022

我了解到您可以在内插字符串中使用表达式,但转义引号不起作用。

private string sth = $"{String.Join(\"\", Node.stringToType.Keys)}";


Error CS1056: Unexpected character `[=10=]22' (CS1056)
Error CS1525: Unexpected symbol `)', expecting `${', `:', or `}' (CS1525) 

更新:

上面的内部表达式被认为等同于

String.Join("", Node.stringToType.Keys)

(两个反斜杠是为了转义两个双引号)这样你就可以插入任何定界符。

改成这个

private string sth = $"{String.Join("\", Node.stringToType.Keys)}";

这个方法一定行得通

private string sth = $"{String.Join(@"\", Node.stringToType.Keys)}";

你应该把它写成

  private string sth = $"{String.Join("\", Node.stringToType.Keys)}";

请注意 {...} 中的文本应该是 正确的 C# 代码

  String.Join("\", Node.stringToType.Keys)

作为进一步的改进,您根本不需要字符串插值:

  private string sth = String.Join("\", Node.stringToType.Keys);