C# 문자열은 값 유형인가요, 아니면 참조 유형인가요?
먼저 코드를 살펴보세요:
int a = 1; int b = a; a = 2; bool valOrRef = b == 2 ;//false;
b는 a와 변경되지 않으므로 int 유형이 값 유형임을 알 수 있습니다. .
다음 코드를 다시 살펴보세요.
string str11 = "qa"; string str22 = str11; str11 = "qaz"; bool valOrRef2 = str22 == "qaz"; //false
결과도 false이므로 문자열도 값 유형입니다.
다음 코드를 다시 살펴보세요.
string str1 = "qaz"; string str2 = "qaz"; bool refequ = object.ReferenceEquals(str1, str2); //true
refequ는 true입니다. string이 실제로 값 유형인 경우 어떻게 refequ가 true일 수 있습니까? 다음 코드를 살펴보시기 바랍니다. 🎜>
int a = 1; int b = 1; bool refequ2 = object.ReferenceEquals(a, b);//false
문자열은 참조 유형입니다. 그렇다면 값 유형이 어떻게 보이는지 설명하는 방법은 무엇입니까?
2가지 사항을 기억해주세요: 1) 문자열 객체는 값이 동일하면 참조 주소도 동일합니다. 2)
문자열 객체의 경우 값이 동일하지 않으면 해당 참조 주소도 동일하지 않습니다.
string str11 = "qa";//str11指向了内存addressA,数据为qa; string str22 = str11;//str22也指向内存addressA str11 = "qaz";//str11新指向了内存addressB,数据为qaz bool valOrRef2 = str22 == "qaz"; //false
추첨:문자열의 가장 중요한 특징 중 하나는 상수 불변성: 일단 문자열을 생성하고 관리되는 힙에 연속적인 메모리 공간을 할당하면 문자열을 더 길거나 짧게 만들거나 형식을 변경하기 위해 어떤 식으로든 문자열을 수정할 수 없습니다. 이 문자열에 대한 다양한 작업에 의해 반환된 모든 문자열은 실제로 재생성된 또 다른 문자열이며 자체적으로는 변경 사항이 생성되지 않습니다.
문자열 효율성은 어떤가요?
불변(읽기 전용) 개체라고 합니다. 개체가 생성되면 해당 값을 수정할 수 없기 때문입니다. 실제로는 문자열이 특별히 처리된 것처럼 보입니다. 값이 변경될 때마다 새 문자열 개체가 생성되지만 원래 개체는 여전히 개체를 가리킵니다. 원본 개체이므로 변경되지 않습니다. 문자열이 비효율적인 이유이기도 합니다.
위 내용은 C# 문자열은 값형인가요, 참조형인가요? CN)!
핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C#을 사용한 Active Directory 가이드. 여기에서는 소개와 구문 및 예제와 함께 C#에서 Active Directory가 작동하는 방식에 대해 설명합니다.

C#의 난수 생성기 가이드입니다. 여기서는 난수 생성기의 작동 방식, 의사 난수 및 보안 숫자의 개념에 대해 설명합니다.

C#의 액세스 수정자에 대한 안내입니다. 예제 및 출력과 함께 C#의 액세스 한정자의 소개 유형에 대해 논의했습니다.

C# 데이터 그리드 뷰 가이드. 여기서는 SQL 데이터베이스 또는 Excel 파일에서 데이터 그리드 보기를 로드하고 내보내는 방법에 대한 예를 설명합니다.
