C#에서 변수 이름 앞의 @ 기호
이 기사에서는 C#에서 변수 이름 의미 앞의 @
기호에 대해 설명합니다.
C#
의 @
기호란?
일부 C# 개발자의 경우 @
기호가 다소 문제가 될 수 있습니다. 오랫동안 프로그래밍을 해왔지만 여전히 @
이 하는 일에 대해 오해하고 있는 프로그래머는 거의 없습니다.
다른 프로그래밍 언어와 상호 작용할 때 @
표기법을 사용하면 키워드를 식별자로 사용할 수 있습니다. @
문자는 실제로 식별자의 일부가 아니므로 다른 언어에서는 일반 식별자로 해석될 수 있습니다.
축자 식별자는 @
용어가 있는 식별자입니다. @
용어는 키워드가 아닌 식별자에 사용할 수 있지만 스타일에 따라 사용하지 않는 것이 좋습니다.
C#
에서 @
기호의 의미
@
기호를 사용하여 예약어를 활용할 수 있습니다. 다음 시나리오를 고려하십시오.
int @class = 29;
그리고 아래의 것은 예약어의 사용을 위해 작동하지 않을 것입니다.
int class
= 29;
문자열에 백슬래시를 삽입하려면 먼저 그 앞에 다른 백슬래시를 삽입하여 이스케이프해야 합니다. 다음 코드는 문자열 변수 filepath
에 "C:\\Program Files\\wmplayer.exe"
문자열을 저장합니다.
string filepath = "C:\\Program Files\\wmplayer.exe";
백슬래시가 있는 문자열을 많이 입력해야 하는 경우 답답할 수 있습니다. 일을 좀 더 간단하게 하기 위해 문자열 앞에 @
기호를 사용하여 백슬래시를 이스케이프 문자로 무시하는 그대로의 문자열 리터럴을 생성할 수 있습니다.
이렇게 하면 줄 바꿈이나 탭과 같은 특수 문자를 문자열에 삽입할 수 없습니다. 다음 코드는 문자열 리터럴을 대신 사용한다는 점을 제외하고는 앞의 코드와 동일합니다.
string filepath = @"C:\Program Files\wmplayer.exe";
이것은 사용자가 TextBox
또는 ComboBox
에 입력하는 것이 아니라 코드에만 적용됩니다. 이스케이프가 없고 문자에 특별한 의미가 연결되어 있지 않기 때문에 사용자가 입력하는 모든 것은 컨트롤의 Text
속성의 일부가 됩니다.
사용자가 특수 문자를 입력할 수 없기 때문에 사용자가 입력하는 것과 상관없이 이스케이프 문자를 다르게 취급하는 것에 대해 걱정할 필요가 없습니다. 즉, 사용자는 \t
를 입력하여 탭 문자를 입력할 수 없습니다.
C#
에서 @
기호 사용의 예
-
예약어를 사용할 수 있다는 의미입니다.
char @int = 'z';
그리고 아래 하나는 작동하지 않습니다.
char int = 'z';
-
우리는 또한 다른 시나리오를 봅니다.
@
기호는 이스케이프 문자로 문자열을 정의할 때도 사용됩니다.string str = @"C:\Users\Shani\Downloads\Book1.xlsx";
아래 코드는 위 코드의 대안입니다.
string str = "C:\\Users\\Shani\\Downloads\\Book1.xlsx";
-
다음 코드는 프로그램이 시작될 때 수많은 문자열 리터럴 및 기타 문자열 문제를 표시합니다.
private void AtsymbolForm_Load(object sender, EventArgs e) { txtdblSlash.Text = "C:\\Users\\Shani\\Downloads\\Book1.xlsx"; Console.WriteLine(txtdblSlash.Text); Console.WriteLine(@txtdblSlash.Text); }
여기에
@
를 추가해도TextBox
의 내용에는 영향을 주지 않습니다.
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn