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
'Programing' 카테고리의 다른 글
Gradle을 사용하여 릴리스 서명 apk 파일을 만드는 방법은 무엇입니까? (0) | 2020.02.13 |
---|---|
C #에서 디렉토리의 전체 내용을 복사하십시오. (0) | 2020.02.13 |
jQuery에서 5 초마다 함수를 호출하는 가장 쉬운 방법은 무엇입니까? (0) | 2020.02.13 |
Gradle DSL 방법을 찾을 수 없음 : 'runProguard' (0) | 2020.02.13 |
PHP 배열을 다른 배열로 복사하는 기능이 있습니까? (0) | 2020.02.13 |