What does an @ before the start of a string literal mean?

A string literal such as <code>@"c:\Foo"</code> is called a <i>verbatim string literal</i>. 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 (<code>"</code>) within a verbatim literal, you need to just double it, e.g.     <code>@"My name is ""Jon"""</code> represents the string <code>My name is "Jon"</code>. 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.  <p>    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]