我开始学习C#,我不明白为什么常规字符串文字(即" ")不能包含文字换行符.(我不是在谈论逃脱序列\n).我知道你必须@" "对多行字符串使用逐字字符串文字(即),但为什么呢?

我没有看到它明确声明你不能在常规字符串中使用它们.更重要的是,除了传递中我可以使用逐字字符串的地方,我读过的所有内容似乎都表明在常规字符串文字中允许使用文字换行符.
从Visual C#2010和代码开始:生成多行字符串文字(Visual C#)显示逐字多行字符串的示例,无需进一步说明.
学习C#3.0说:
在C#语言中,空格,制表符和换行符被认为是空格....在C#语句中通常会忽略额外的空格....此规则的例外是字符串中的空格被视为文字; 它不被忽视.
这是字面上的吗?这也是我所期望的,但事实并非如此.
它甚至包括这个提示框:
提示
Visual Basic程序员注意到:在C#中,行尾没有特殊意义.语句以分号结束,而不是换行符.没有行继续符,因为不需要.
(我意识到这是在字符串之外讨论,但是如果字符串不在字符串之外,为什么行尾会在字符串中有特殊的解析意义?)
终于找到了我的方式(C#Reference)本身,我仍然没有获得任何见解:
字符串文字可以包含任何字符文字.包括转义序列.以下示例
\\对反斜杠,\u0066字母f和\n换行使用转义序列.
它说可以使用转义序列,但它并没有说它们必须被使用.字面换行字符是否未包含在"任何字符文字"中?如果我有一个包含文字制表符而不是其转义序列的字符串,\t则没有错误.但是,如果我有一个文字换行符,我会收到一个错误.我甚至改变了文件的行结束\r\n到\n或\r没有效果.
显然,我能够从示例和Visual Studio错误推断,如果它包含一个文字换行符,则需要一个逐字字符串,但我读过的所有内容都表明不应该是这种情况.为什么不同?
好吧,拍.正如我提交的那样,我找到了答案.
字面换行字符是否未包含在"任何字符文字"中?
显然,不,他们不是.
字符的文字:
'人物'
字符:
单字符
单字符:
除 '(U + 0027),\(U + 005C)和换行符之外的任何字符