C#에서 변수 이름 앞의 @ 기호

Muhammad Zeeshan 2023년10월12일
  1. C#@ 기호란?
  2. C#에서 @ 기호의 의미
  3. C#에서 @ 기호 사용의 예
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#에서 @ 기호 사용의 예

  1. 예약어를 사용할 수 있다는 의미입니다.

    char @int = 'z';
    

    그리고 아래 하나는 작동하지 않습니다.

    char int = 'z';
    
  1. 우리는 또한 다른 시나리오를 봅니다. @ 기호는 이스케이프 문자로 문자열을 정의할 때도 사용됩니다.

    string str = @"C:\Users\Shani\Downloads\Book1.xlsx";
    

    아래 코드는 위 코드의 대안입니다.

    string str = "C:\\Users\\Shani\\Downloads\\Book1.xlsx";
    
  2. 다음 코드는 프로그램이 시작될 때 수많은 문자열 리터럴 및 기타 문자열 문제를 표시합니다.

    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의 내용에는 영향을 주지 않습니다.

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

관련 문장 - Csharp Variable