Programing

C #에서 변수 이름 앞의 @ 기호는 무엇을 의미합니까?

lottogame 2020. 2. 13. 00:25
반응형

C #에서 변수 이름 앞의 @ 기호는 무엇을 의미합니까? [복제]


가능한 중복 :
C #에서 변수 이름에 @ 문자를 사용 / 의미하는 것은 무엇입니까?

컴파일러가 문자열을 구문 분석하는 방법을 변경하기 위해 문자열 리터럴 앞에 @ 기호를 사용할 수 있음을 이해합니다. 그러나 변수 이름 앞에 @ 기호가 붙는 것은 무엇을 의미합니까?


@ 기호를 사용하면 예약어를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

int @class = 15;

아래는 그렇지 않을 때 위의 작동합니다.

int class = 15;

@ 기호는 C #에서 2 가지 용도로 사용됩니다.

먼저 예약 키워드를 다음과 같은 변수로 사용할 수 있습니다.

int @int = 15;

두 번째 옵션을 사용하면 문자를 이스케이프하지 않고 문자열을 지정할 수 있습니다. 예를 들어 '\'문자는 이스케이프 문자이므로 일반적으로 다음을 수행해야합니다.

var myString = "c:\\myfolder\\myfile.txt"

또는 당신은 이것을 할 수 있습니다 :

var myString = @"c:\myFolder\myfile.txt"

다른 답변에서 잊어 버린 중요한 점은 "@keyword"가 CIL에서 "keyword"로 컴파일된다는 것입니다.

따라서 F #과 같이 "class"라는 속성을 가진 클래스를 정의해야하는 프레임 워크가 있다면 실제로 그렇게 할 수 있습니다.

그것은 아닌 실시에 유용한하지만 언어의 상호 운용성의 일부 형태에서 C #을 방지 할 필요 없습니다.

나는 보통 interop에 사용되지 않지만 키워드 제한을 피하기 위해 (보통 로컬 변수 이름에서 이것이 유일한 효과입니다) 피하십시오.

private void Foo(){
   int @this = 2;
}

그러나 나는 그것을 강력히 권장하지 않습니다! 변수의 '최상의'이름이 예약 된 이름 중 하나라도 다른 이름을 찾으십시오.


C # 키워드를 변수로 사용할 수 있습니다. 예를 들면 다음과 같습니다.

class MyClass
{
   public string name { get; set; }
   public string @class { get; set; }
}

참고 URL : https://stackoverflow.com/questions/429529/what-does-the-symbol-before-a-variable-name-mean-in-c



반응형