开发者

a cleaner way of representing double quote?

really simple question... just want to represent 开发者_如何学JAVAdouble quote " without needing to do "" or \"

cases that I'm aware of:

var s=@"123 "" 456 """;

var s="123 \" 456 \"";

It'd make a reasonalbe difference if I could remove this noise somehow. The reason is that the escape sequence \ and the double quote have meaning in a domain specific language (DSL) that we're using. Sometimes it's convenient to throw some syntax inline into a C# string.

What I'd like is a way to tell .net not to touch it. Perhaps some kind of catch all via the DLR?


Within a C# literal, there's nothing you can to - don't forget this is all done at compile-time.

If you don't use single quotes, you could always do:

var s = "123 ' 456 '".Replace("'", "\"");

(Or choose some other character you don't use much, and replace that afterwards instead.)

Other than that, avoiding storing lots of data in your source code helps a lot with this sort of thing - for test data, I often use an embedded resource and load that in at execution time.


I don't suppose you could just read them in from a file or database?


Yeah, there's definitely a way to do that, and I use it all the time for exactly that reason.

You create a string resource collection (open Project Properties, Resources, make sure it's on Strings) and put your literal strings in there. Then, when you need one of those strings, use the Properties.Resources.{insert string resource name} reference to collect it in a pure and unadulterated form!


For completeness, I'll mention that you can use hex in a C# string, so in this case, \x0022. Note that you can omit the leading 0's if the character immediately following isn't hex.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜