C#의 변수 구조 : 왜 "악"이라고 간주 되는가? <..>
c#의 구조는 값 유형이므로 할당 할 때 복사됩니다. 가변 구조를 처리 할 때 문제가 발생합니다.
변수 구조는 생성 후 데이터를 수정할 수 있습니다. 그러나 값으로 복사되므로 사본을 수정하면 원래 구조 또는 기타 기존 사본에 영향을 미치지 않습니다. 이 동작은 특히 다중 스레드 환경에서 예상치 못한 결과로 이어질 수 있습니다.
예를 들어 코디네이트를 나타내는 가변 구조가 있다고 가정합니다.
이 구조에 변수를 할당하고 x 속성을 수정하려고하면 다음과 같습니다.
변경은 원래 구조 또는 기타 참조가 아니라 좌표 변수에 저장된 로컬 사본에만 영향을 미칩니다. 이는 쉽게 일관되지 않은 데이터로 이어질 수 있으며 다중 스레드 애플리케이션에서 예측할 수없는 동작을 생성 할 수 있습니다.
따라서 일반적으로 가변 구조를 사용하지 않는 것이 좋습니다. 대신 생성 후 데이터를 수정할 수없는 구조를 선택하십시오. 이를 통해 예측 가능한 동작을 보장하고 값 유형 시나리오에서 우발적 인 데이터 손상을 제거합니다. 위 내용은 C#에서 변이성 스트러크가 '악'으로 간주되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!