繁体   English   中英

如何在没有回车的情况下逐字创建 C# 字符串

[英]How can I create a C# string verbatim without carriage return

我有一个奇怪的情况。 当我像这样逐字执行字符串时:

string str = @"Hello 
World"

该字符串是用“\r\n”创建的,因此它是“Hello \r\nWorld”。 我希望它只用新行创建,没有回车,所以它只是“\n”。

现在,我意识到我可以做到:

str = str.Replace("\r", "")

但是字符串是一个 const 变量,特别是因为我不想要大量的实例化和操作来提高性能(无论多么小)等

任何人都知道我怎么能做到这一点,我可以编写多行文本存储为 const 字符串,没有“\r”,仍然显示格式和易于在代码中阅读?

是您的编辑对您执行此操作,而不是 C#。

如果您在十六进制编辑器中查看您的代码,您会看到“string str = @"Hello” 行以 \r\n 结尾,而不仅仅是 \n。

在 Windows 上,默认情况下,返回是两个字符 \r\n,而不是像在 Mac 上的 \n 一样。

大多数编辑都可以选择更改此设置。 但是,最终会在您不查看时将文件切换回对您使用 \r\n 。

该语言没有提供解决此问题的干净方法。 只需使用非逐字字符串或进行替换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM