2010-03-02 3 views
15

가능한 중복 :
when to use @ in c# ?는 C#에서 의미

F.e. string sqlSelect = @"SELECT * FROM Sales".

+2

복제를 - http://stackoverflow.com/questions/1057926/when-to-use-in-c – ChrisF

+4

재미있는 사실 : 당신은 또한 사용할 수 있습니다 식별자를 키워드와 구별하기위한 리터럴 접두사. 'Int32 new;'는 유효하지 않지만'Int32 @new;'는 유효하지 않습니다. – HackedByChinese

답변

26

다음 문자열을 리터럴로 해석해야합니다. 결과적으로 문자열의 \은 실제로 "\"이되고, "\\"은 리터럴 문자를 의미하지 않습니다.

+2

슬래시가 섞여 있습니다. 그렇지 않으면 나는 당신의 대답을 가장 좋아합니다. –

+0

@Spencer Ruport : 그것을 얻을 수 없습니까, 어떻게 혼합 되었습니까? – Sarfraz

+0

. 슬래시가 아닌 백 슬래시 여야합니다. –

0

\ delimiter가있는 문자열을 사용할 수 있습니다.

@ "C : \ A \ b \ c \ d \ e \ f"는 유효합니다.

4

이렇게하면 해당 문자열에서 문자를 이스케이프 처리 할 필요가 없습니다. 당신이 C의 경로를 기록 할 경우

그래서 : \ WINDOWS를, 당신은

string path="c:\\Windows"; // 참고 탈출로 쓸 수있는 '\'

또는

string [email protected]"c:\Windows"; // '를 \' 이스케이프 할 필요가 없습니다.

+0

정말 열심히 찾고 있는데 첫 번째 예에서는 double \을 볼 수 없습니다 ... – Rory

+0

고정. 일부 서식 문제가있는 것 같습니다. – logicnp

0

문자열 리터럴에 사용됩니다. 그것은 해당 문자열의 심볼에 대한 어떤 해석을 적용하지 않고 따옴표 (") 값으로 표시 내의 문자열을 표시

2

축 어적으로 문자열 리터럴은 @ 로 시작하고 또한 이중 따옴표로 묶습니다. 예를 들면. : 에서 흠집

@"good morning" // a string literal 

, 자세한 내용은 위의 예제의 마지막 몇 줄을 살펴 있습니다. http://msdn.microsoft.com/en-us/library/362314fe.aspx

+0

또한 https://msdn.microsoft.com/en-us/library/ms228362.aspx#Anchor_3 – Lu55

4

문자열 리터럴에는 정규 및 축 어의 두 가지 유형이 있습니다. @ 기호는 축 어적 문자열 리터럴로 만듭니다.

MSDN: String literals (C#)

18

문자열 전에 서로 다른 문자열 형식화하는 규칙을 할 수 있습니다. 특수 기호와 ""(큰 따옴표는 따옴표가 됨)를 지정할 때는 백 슬래시를 사용할 수 없습니다. 나는 정규 표현식

또한 변수 전에 기호 @ 볼 수
Console.WriteLine(@"\n""\/a"); // outputs \n"\/a 
Console.WriteLine("\\n\"\"\\/a"); // outputs \n"\/a 

이 형식이 매우 유용하게 찾을 수 있습니다. 이 경우 특수 C# 키워드를 변수로 사용할 수 있습니다.

예 :

C와 C에서
var @switch = 1; 
var @if = "test"; 
1

++, 문자열이 "문자를 이스케이프"라는 일부 특수 문자. 예 : "\", "&"및 " 자체는 이스케이프 문자입니다!매우 일반적인 방법으로

당신은

낸시 말했다 안녕하세요 같은 성명을 인쇄! &는 다음

string str = "Nancy said Hello World! \& smiled."; 

그러나 당신이 어떤 전에 @를 추가하여 이스케이프 문자를 처리하는 두통을 탈출 할 수 있도록 마이크로 소프트의 사람들이 C# 컴파일러에 새로운 멋진 기능을 만든처럼 문자열을 설정했다

미소를 지었다 문자열을 입력하면 컴파일러가 직접 모든 이스케이프 문자를 처리합니다. 마지막 예를 들어, 당신은 다음과 같은 C#으로이있을 수 있습니다 :

string str = @"Nancy said Hello World! & smiled."; 
+1

구분 문자로 동의하지만 C#으로 구분되어야하는 문자는 믿을 수 없습니다. – MPritchard