2014-09-15 2 views
-6

"문자열은 C#에서 불변"이라는 의미입니다. 나는이 당신이C에서 문자열 불변 성을 이해하는 예제 #

string s = "Hello"; 

을 할당 할 경우 문자열의를 수정할 수 있다는 것을 의미한다이

+0

당신이 문자열을 변경할 때마다, 새로운 캐릭터가 만들어진다. 기존 문자열을 변경할 수 없으므로 변경할 수 없습니다. –

+0

'string s = "bob"; s [2] = 'a'는 허용되지 않습니다. 문자열을 변경할 수 없습니다. 이것은 "불변성"이 의미하는 것입니다. – BradleyDotNET

+1

@PeteGarafano 불변성의 핵심은 * 문자열을 변경할 수 없다는 것입니다. 문자열을 변경할 수있는 것은 아니므로 새로운 문자열을 만들 수 있습니다. – Servy

답변

1

을 이해하는 몇 가지 적절한 사례를 찾을 수 없습니다 이걸 이해하기 위해 몇 가지 예를해야합니다. 따라서 당신이 할 경우

리터럴 "Hello"는 수정되지 않지만 새로운 리터럴 "Goodbye"는 s에 할당됩니다.

-2

텍스트에 검색 "문자열 C#에서 불변"나는 찾을 : 문자열 객체를 변경하지 않습니다라고 말하는 것 같다 http://msdn.microsoft.com/en-us/library/362314fe.aspx

는, 그들은 항상 파괴하고 다시 만들었습니다. 마이크로 소프트 당

:

Strings are immutable--the contents of a string object cannot be changed after the 
object is created, although the syntax makes it appear as if you can do this. 
For example, when you write this code, the compiler actually creates a new string object 
to hold the new sequence of characters, and that new object is assigned to b. The string "h" 
is then eligible for garbage collection. 

string b = "h"; 
b += "ello";