非常简单的问题...只想表示双引号“无需做”或“
我知道的案例:
var s=@"123 "" 456 """;
var s="123 \" 456 \"";
如果我能以某种方式消除这种噪音,那将是一个合理的区别。原因是转义序列\和双引号在我们正在使用的域特定语言(DSL)中具有意义。有时将一些语法内联到C#字符串中很方便。
我想要的是告诉.net不要碰它的方法。也许通过DLR可以获得一些收获?
答案 0 :(得分:5)
在C#文字中,没有什么可以 - 不要忘记这一切都是在编译时完成的。
如果您不使用单引号,则可以随时执行:
var s = "123 ' 456 '".Replace("'", "\"");
(或选择其他一些你没用多少的角色,然后替换它。)
除此之外,避免在源代码中存储大量数据对这类事情有很大帮助 - 对于测试数据,我经常使用嵌入式资源并在执行时加载它。
答案 1 :(得分:4)
我认为你不能从文件或数据库中读取它们吗?
答案 2 :(得分:2)
是的,肯定有办法做到这一点,我正是因为这个原因而一直使用它。
您创建一个字符串资源集合(打开Project Properties,Resources,确保它在字符串上)并将您的文字字符串放在那里。然后,当您需要其中一个字符串时,使用Properties.Resources.{insert string resource name}
引用以纯粹且纯粹的形式收集它!
答案 3 :(得分:1)
为了完整起见,我会提到你可以在C#字符串中使用hex,所以在这种情况下,\x0022
。请注意,如果紧跟的字符不是十六进制,则可以省略前导0。