CLOSE SEARCH

문자열 in C#

C#에서 문자열은 System.String 클래스의 객체이며 C, C++과 마찬가지로 따옴표(“) 사이에 포함된 문자들의 집합이다. +연산자를 통해 다른 문자열이나 문자와 연결하고, @를 사용해서 이스케이프 문자도 그대로 출력할 수 있는 기능을 제공한다.

Object 클래스에 있는 Equals() 함수는 기본적으로 객체의 참조값을 비교하지만 String 클래스의 Equals() 함수는 문자열 값을 비교하도록 오버라이딩 되어 있다. 또한 == 연산자 오버로딩을 통해서도 문자열 값을 비교한다.

string은 불변객체이다. 다시말하면 한번 생성되면 자신이 가지고 있는 문자열을 변경할 수 없다. 외부적으로는 동일한 객체를 사용하는 것처럼 보이지만 내부적으로는 새로운 객체를 생성한다. C#에서는 이런한 불변(Immutable) 문자열 객체의 단점을 보완하기 위해 Java의 StringBuffer나 Objective-C NSMutableString와 같이 자신이 가지고 있는 문자열을 수정할 수 있는 StringBuilder 클래스를 제공한다.

string의 경우 문자열이 변경될 때마다 새로운 객체가 생성되기 때문에 단시간에 많은 변경이 발생하게 될 경우 비효율적이다. 그러므로 변경이 잦은 문자열은 StringBuilder를 통해 생성하는 것이 좋다.

Filed under: Programming Languages