Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#内联字符串选项-用于嵌入双引号_C#_.net_.net 4.0_.net 4.5 - Fatal编程技术网

c#内联字符串选项-用于嵌入双引号

c#内联字符串选项-用于嵌入双引号,c#,.net,.net-4.0,.net-4.5,C#,.net,.net 4.0,.net 4.5,我经常在内联字符串中使用@前缀,以支持多行字符串或使带引号的字符串更具可读性。仍然需要将内联引号加倍仍然有点痛苦,因此我想知道在.net中是否还有另一个选项允许字符串在不需要某种形式的定界的情况下保持其双引号?类似于xml中的CDATA部分?我搜索了一下,什么也没找到,但我想在这里问一下,以防我忽略了一些.Net功能(甚至可能是版本4或4.5中的最新功能) 更新:我发现vb.net具有“XML文本”,允许直接与源代码内联定义XML片段。这看起来非常接近我希望c#做的事情…如果有什么东西可以做你想

我经常在内联字符串中使用@前缀,以支持多行字符串或使带引号的字符串更具可读性。仍然需要将内联引号加倍仍然有点痛苦,因此我想知道在.net中是否还有另一个选项允许字符串在不需要某种形式的定界的情况下保持其双引号?类似于xml中的CDATA部分?我搜索了一下,什么也没找到,但我想在这里问一下,以防我忽略了一些.Net功能(甚至可能是版本4或4.5中的最新功能)


更新:我发现vb.net具有“XML文本”,允许直接与源代码内联定义XML片段。这看起来非常接近我希望c#做的事情…

如果有什么东西可以做你想做的,那么我们就不需要“逃避”双引号


在用代码编写动态HTML时,我喜欢使用@。但是静态字符串确实属于资源。即使是具有动态值的,例如,“应用程序错误。错误消息:{0}”。然后您可以使用
string.format
来形成输出。

使用引号有一点帮助,但帮助不大-它允许您使用“”而不是\"... 同样,也没有太多帮助,@允许多行字符串,因此这里的@AdamHouldsworth肯定适用于超过url/path string100%的字符串-听起来这些东西属于一个资源文件,而不是塞进某个C源代码文件中。作为一个选项:为字符串类创建包装器,定义从/到字符串的类型转换,重载一些操作符(例如,
运算符&
)将添加引号。然后将字符串表示为类似
var str=(string)(新包装器()+“some attr=”&“value in quotes”+“other attr=”&“value in quotes”
)第二个选项:简单地定义扩展方法,用引号将传递的字符串括起来。你的第一行不成立。你总是需要转义一些东西,但不必是双引号。例如javascript允许你用单引号或双引号分隔字符串。这意味着如果你想声明字符串
,他说“为什么是我?”
然后你可以做
teststring=”他说“为什么是我?”
。OP问是否有任何东西允许在C#中使用替代语法(没有,但这并不能使你的第一行更正确).克里斯,现在好点了吗?但是我给你一个。第一行似乎没有多大用处,似乎是循环逻辑。这个功能不存在,你不能用逻辑论证来解释。这只是一个事实。