Please Enable JavaScript!
Gon[ Enable JavaScript ]

C# String Literal 문자열 처리방법 - @

기타 언어/C# & MFC
반응형

C# 에서는 두가지 방식으로 문자열을 표현하게 되는데 첫번쨰는 C 에서 처럼

escape sequencess (\t, tab) 문법을 적용할수 있는 방법과 두번째는 문자열 그대로 표현하는

방법이다. 두번째 방법으로 C# 에서는 문자열 앞에 @ 표시를 함으로써 손쉽게 사용할수있다.

 

아래 예제는 두가지 방법을 모두 포함한 문자열 표현 방법에 대한 예제이다.

클래스 레벨에서의 static, const 데이터에 대한 문자열표현과 함수레벨에서의 문자열 표현을

보여주고 있다. 그리고 escape sequencess 는 다음라인 , tabs, 인용부호를 넣어서 적용되었는지

아닌지에 대한 여부를 출력해서 보여준다.

class Program
{
    static string _value1 = "String literal";
    const string _value2 = "String literal 2";
    const string _value3 = "String literal 3\r\nAnother line";
    const string _value4 = @"String literal 4 Another line";
    const string _value5 = "String literal\ttab";
    const string _value6 = @"String literal\ttab";

    static void Main()
    {
	// Execution engine begins here.
	string test1 = "String literal \"1\"";
        const string test2 = "String literal 2";
        string test3 = @"String literal ""3""";
        const string test4 = @"String literal 4";
	// Print out the string literals from the program text.
	Console.WriteLine("{0}\n{1}\n{2}\n{3}\n{4}\n{5}\n{6}\n{7}\n{8}\n{9}",
            _value1, _value2, _value3, _value4, _value5, _value6, test1, test2, test3, test4);
    }
}

========== Output ==========

String literal

String literal 2

String literal 3

Another line

String literal 4

Another line

String literal  tab

String literal\ttab           (The tab escape sequence was not recognized)

String literal "1"            (Uses quote escaping \")

String literal 2

String literal "3"            (Uses double quote escaping "")

String literal 4

 

따움표를 표현하는 방법에서 test1 test3 를 비교해 보면 @ 을 써서 문자열 표현하는것에

대한 내용을 쉽게 이해할수 있을것이다. 정규식에서도 @ 를 많이 사용하는데

컴파일러가 Literal String 을 해석할 때 Escape(\) 문자를 한번 처리하지만

정규식 엔진에 문자열을 보낼 때 escape 문자 처리가 한번 더 되므로 @ 을 사용하지 않으면

두번 escape 문자처리를 해줘야하는 불편함이 있기 때문이다.
반응형
Posted by 녹두장군1
,