C# Declare a string that spans on multiple lines

Ben picture Ben · Sep 23, 2012 · Viewed 30.6k times · Source

I'm trying to create a string that is something like this

string myStr = "CREATE TABLE myTable
(
id text,
name text
)";

But I get an error: http://i.stack.imgur.com/o6MJK.png

What is going on here?

Answer

Olivier Jacot-Descombes picture Olivier Jacot-Descombes · Sep 23, 2012

Make a verbatim string by prepending an at sign (@). Normal string literals can't span multiple lines.

string myStr = @"CREATE TABLE myTable
(
    id text,
    name text
)";

Note that within a verbatim string (introduced with a @) the backslash (\) is no more interpreted as an escape character. This is practical for Regular expressions and file paths

string verbatimString = @"C:\Data\MyFile.txt";
string standardString = "C:\\Data\\MyFile.txt";

The double quote must be doubled to be escaped now

string verbatimString  = @"This is a double quote ("")";
string standardString  = "This is a double quote (\")";