C#에서 @기호는 다양한 경우에 사용되지만, 여기서 소개해 드릴 내용은 문자열에 붙여 사용하는 @의미에 대해 설명드리겠습니다.
결론을 먼저 말씀드리자면, 문자열 변수 값 지정시 다음과 같은 경우에 @기호를 사용하면 편리합니다.
1. 파일경로 표현시(백슬래시 '\' 사용)
2. 쿼리문 작성시(string 여러줄의 문자열 지정)
다음의 코드를 보시면 문자열에 @기호를 사용할때와 하지 않을 때의 의미차이를 쉽게 파악하실 수 있습니다.
//일반문자열로 표현시 string file = "C:\\Users\\Downloads\\ReadMe.txt"; string sql = "SELECT " + " Seq " + " , Name " + " , Flavor " + " , Rank " + "FROM Fruit "; //@기호 사용시 string file = @"C:\Users\Downloads\ReadMe.txt"; string sql = @"SELECT Seq , Name , Flavor , Rank FROM Fruit ";
1. 파일경로 표현시
일반적으로 문자열은 다음과 같이 사용됩니다.(일반 문자열 리터럴)
string myName = "홍길동";
그런데, string 에 파일 경로명을 넣게 되면 문제가 조금 복잡해집니다.
예를 들어, 파일경로 C:\Users\Downloads\ReadMe.txt 를 string에 넣으려면 다음과 같이 해야합니다.
string file = "C:\\Users\\Downloads\\ReadMe.txt";
위와 같이 \(백슬래시)를 두 번 써주는 이유는 \로 시작하면 이스케이프 시퀀스로 인식되기 때문입니다.
- 이스케이프 시퀀스란?
이스케이프 시퀀스 | 의미 |
\n | 줄 바꿈 |
\r | 캐리지 리턴 |
\t | 가로 탭 |
\v | 세로 탭 |
\' | 작은따옴표 |
\" | 큰따옴표 |
\\ | 백슬래시 |
문자열 텍스트에 백슬래시 문자가 포함된 경우 가독성, 편의성을 위해 다음의 코드처럼 @기호를 사용하면 다음과 같이 간단하게 표현됩니다.(축자 문자열 리터럴)
string file = @"C:\Users\Downloads\ReadMe.txt";
2. 쿼리문 작성시
다음은 SQL쿼리와 같이 string 여러줄을 표현할 때 유용하게 사용됩니다. 문자열의 값을 여러줄로 넣으려면 행마다 +로 문자열을 이어주거나 StringBuilder를 사용해야 하는데요 @를 사용하면 다음과 같이 심플하게 string 여러줄을 표현할 수 있습니다.
string sql = @"SELECT Seq , Name , Flavor , Rank FROM Fruit "; //다이내믹 쿼리문을 작성할 때도 심플하게 표현됩니다. string fruitName = "사과"; string sql = @"SELECT Seq , Name , Flavor , Rank FROM Fruit WHERE Seq = '"+ fruitName +"'";
프로젝트의 성공을 기원합니다.
참조 : MSDN
'ASP.net with C# (웹폼)' 카테고리의 다른 글
C# 세션 삭제하기 (0) | 2019.04.04 |
---|---|
런타임이란? 컴파일타임 과의 차이는? (1) | 2019.02.09 |
C# SMTP 메일발송, 옵션에 대한 설명 (0) | 2019.02.03 |
C#코딩시 정말 간단한 팁을 소개합니다. (0) | 2019.01.03 |
C# var변수 사용법, dynamic과의 차이점 (0) | 2018.11.03 |