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

我已经读过你可以在插值字符串中使用表达式,但是转义引号不起作用。

private string sth = $"{String.Join(\"\", Node.stringToType.Keys)}"; Error CS1056: Unexpected character `\0022' (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);