문자열을 변경할 수 없다는 것을 알았습니다. 일단 변경할 수 없으면 새 문자열 객체를 만들고 값을 할당 한 다음 동일한 문자열 객체에 다른 값을 내부적으로 할당하면 실제로 읽을 수 있습니다. 새로운 값으로 생성되고 할당 된 객체. 의 내가 있다고 가정 해 봅시다 :문자열은 C#에서 어떻게 작동합니까?
string str = "dog";
str = "cat";
을 나는 그것이 cat
을 반환 Console.WriteLine(str);
을 작성하는 경우. 내부적으로 두 개의 객체가 있습니까? 그러나 그들은 같은 이름을 가지고 있습니까? 어떻게 작동합니까? 나는 Google에 대한 조사를했지만 아직 내게 충분히 설득력있는 것을 찾지 못해서 내 생각을 분명히 할 수있다. 문자열이 참조 유형이라는 것을 알고 있으므로 힙의 값에 대한 참조와 함께 스택에 객체가 있습니다.이 경우 어떻게됩니까? (위의 코드 참조).
사진을 업로드했습니다.이 질문을하는 이유 인 스택 및 힙에 대한 아이디어가 잘못되어 사과드립니다. 첫 번째 코드 줄 (string str = "dog";
)에서 어떤 현상이 나타나나요? 그리고 두 번째 코드 줄에서 어떻게되어야합니까 ?? 힙의 dog
값이 변경됩니까? 그런 다음 스택의 새 객체가 참조로 만들어집니다. 그렇다면 전에 있었던 물건은 어떻게 될까요? 그들은 같은 이름을 가지고 있습니까? 많은 질문에 대해 유감이지만이 문제를 제대로 이해하고 무엇이 일어나고 있는지 알기 위해서는 매우 중요하다고 생각합니다.
귀하의 모든 답변이 매우 설명하기 쉽기 때문에 대답을 선택하기가 매우 어려워서 고맙습니다. 감사합니다. – AlexGH