기타
stirng 은 readonly 속성이다.
fromnothing1
2021. 6. 13. 20:00
c# 뿐만 아니라 많은 언어에서 string 관련 편집 메서드를 제공한다.
때문에 우리는 쉽게 string을 수정 할 수 있다고 착각 하곤 한다.
하지만 string 은 태생부터 heap 영역에 저장되는 데이터로 수정이 불가능 하다 .
( C 의 경우 메모리의 직접접근으로 수정 가능)
static void Main(string[] args)
{
string str = "abcdefg";
str[0] = 'b';
}
오류 CS0200 'string.this[int]' 속성 또는 인덱서는 읽기 전용이므로 할당할 수 없습니다.
따라서 위와 같은 코드는 오류를 생성 한다.
때문에 우리는 string 을 수정하기 위해서는 string 을 char 배열로 바꿔줄 필요가 있다.
다행이 c#은 이를 위한 메서드가 있다.
string str = "abcdefg";
char[] Cstr1 = new char[str.Length];
char[] Cstr2 = new char[str.Length];
for (int i = 0; i < str.Length; i++)
{
Cstr1[i] = str[i];
}
Console.WriteLine("for 노가다 : " + Cstr1);
Cstr2 = str.ToCharArray();
Console.WriteLine("ToCharArray : " + Cstr2);

메서드가 없다면 위와 같이 일일이 for 문을 활용해서 대입해줘야 한다. ㄷㄷ