>백엔드 개발 >C++ >왜 'string.replace'가 C#에서 원래 문자열을 수정하지 않습니까?

왜 'string.replace'가 C#에서 원래 문자열을 수정하지 않습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-30 07:36:09292검색

Why Doesn't `String.Replace` Modify the Original String in C#?

C#의 불변성을 이해하고

C#에서 문자열은 불변입니다. 이는 일단 문자열 객체가 생성되면 그 값을 변경할 수 없음을 의미합니다. 따라서 메소드는 원래 문자열을 수정하지 않습니다. 대신, String.Replace를 대체 한 새 문자열을 반환합니다. 이것은 종종 혼란을 초래합니다. 원래 변수

의 결과를 할당하는 것만으로 String.Replace>가 새 문자열 객체를 생성하고 원래 변수 이름에 대한 참조를 할당하기 때문에 아무것도하지 않으려면 나타납니다. .

를 올바르게 사용합니다 원하는 수정을 달성하려면 반환 된 문자열을 원래 변수로 명시 적으로 재 할당해야합니다.

이것은 새로 생성 된 수정 된 문자열에 대한 참조로 원래 문자열 변수의 참조를 덮어 씁니다. 또는 결과를 새로운 변수에 할당 할 수 있습니다. String.Replace 이것은 원래 문자열을 보존하고 수정 된 버전으로 별도로 작업 할 수 있습니다. 이 동작은 , , 및 다양한 서브 스트링 방법을 포함하여 새 문자열을 수정하는 대신 새로운 문자열을 반환하는 모든 C# 문자열 조작 방법에 따라 일관됩니다. 줄은 불변하다는 것을 기억하십시오. 문자열을 수정하는 것으로 보이는 모든 작업은 실제로 새 작품을 생성합니다.

위 내용은 왜 'string.replace'가 C#에서 원래 문자열을 수정하지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.