Question: > 
> **Possible Duplicate:**  
> 
> [What's the @ in front of a string for .NET?](https://stackoverflow.com/questions/556133/whats-the-in-front-of-a-string-for-net) 
> 
> 
> 

I understand using the `@` symbol is like an escape character for a string.

However, I have the following line as a path to store a file to a mapped network drive:

`String location = @"\\192.168.2.10\datastore\\" + id + "\\";`

The above works fine but now I would like to get a string from the command line so I have done this:

`String location = @args[0] + id + "\\";`

The above doesn't work and it seems my slashes aren't ignored. This my command:

`MyProgram.exe "\\192.168.2.10\datastore\\"`

How can I get the effect of the `@` symbol back?

Answer: 
The **@** symbol in front of a string literal tells the compiler to ignore and escape sequences in the string (ie things that begin with a slash) and just to create the string "as-is"

It can also be used to create variables whose name is a reserved work. For example:

```
int @class=10;

```

If you don't prefix the @ then you'd get a compile-time error.

You can also prefix it to variables that are not reserved word:

```
int @foo=22;

```

Note that you can refer to the variable as **foo** or **@foo** in your code.
If you load from the command line, it will already be escaped for you. This is why your escapes are "ignored" from your perspective. Note that the same is true when you load from config, so don't do this:

```
<add key="pathToFile" value="C:\\myDirectory\\myFile.txt"/>

```

If you do, you end up with double strings, as ".NET" is smart enough to escape thins for you when you load them in this manner.