본문 바로가기
기타

stirng 은 readonly 속성이다.

by fromnothing1 2021. 6. 13.

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 문을 활용해서 대입해줘야 한다. ㄷㄷ

 

 

'기타' 카테고리의 다른 글

공부 도움되는 블로그  (0) 2021.06.19
개꿀잼 소프트 웨어 만화  (0) 2021.06.16
cl 빌드 과정에서 경유파일 생성 방법  (0) 2021.06.02
프로그램 빌드 과정  (0) 2021.06.01
도스창에서 c언어 컴파일 & 빌드  (0) 2021.06.01

댓글