【发布时间】:2019-10-31 09:57:12
【问题描述】:
在 C++ 中,我们使用带有分隔符的 R"()" 获得原始文字字符串。所以下面这段代码很好:
const char SOMETEXT[] = R"+-+-+(<link rel="icon" href="img/favicon.png">)+-+-+"
我不知道如何在 C# 中做到这一点,据我所知有一个使用 @"" 的逐字字符串,但它没有分隔符。这会导致错误:
string SOMETEXT = @"<link rel="icon" href="img/favicon.png">";
C# 中是否有任何带有分隔符的原始文字字符串?因为我不想更改字符串,它会 PITA 稍后编辑。
【问题讨论】:
-
你想错了。 C# 中的字符串是一等公民,它们是 unicode(或 UTF16),而不仅仅是字符数组(就像它们在 C/C++ 中一样)。你想解决什么问题?
-
@Neil OP 的 C++ 示例恰好是一个字符数组。 C++ 具有
std::string并且还具有例如用于 UTF-8 编码文字的u8前缀。您正在考虑 C 或过时的 C++。请记住:在 C++ 中,您无需为不需要/使用的东西付费。 C# 在这方面有所不同,这里的性能不是“一等公民”。