The C# team posts answers to common questions and describes new language features
A string literal such as @"c:\Foo" is called a verbatim string literal. It basically means,
"don't apply any interpretations to characters until the next quote character is reached". So, a verbatim
string literal can contain backslashes (without them being doubled-up) and even line separators. To get a
double-quote (") within a verbatim literal, you need to just double it, e.g.
@"My name is ""Jon""" represents the string My name is "Jon". Verbatim string literals
which contain line separators will also contain the white-space at the start of the line, so I tend
not to use them in cases where the white-space matters. They're very handy for including XML or SQL in your source
code though, and another typical use (which doesn't need line separators) is for specifying a file system path.
@"My name is ""Jon"""
My name is "Jon"
It's worth noting that it doesn't affect the string itself in any way: a string specified as a verbatim string literal
is exactly the same as a string specified as a normal string literal with appropriate escaping. The debugger will
sometimes choose to display a string as a verbatim string literal - this is solely for ease of viewing the string's
contents without worrying about escaping.
[Author: Jon Skeet]