C#의 "반환 값을 수정할 수 없습니다." 오류
자동 구현 속성을 사용할 때 "반환 값을 수정할 수 없습니다." 오류가 발생할 수 있습니다. 예:
<code class="language-csharp">public Point Origin { get; set; } Origin.X = 10; // 出现 CS1612 错误</code>
오류 원인 분석
이 오류는 Point
이 값 유형(구조체)이기 때문에 발생합니다. Origin
속성에 액세스하면 값 자체가 아닌 클래스에 포함된 값의 복사본이 반환됩니다. 복사본의 속성을 수정해도 원래 값에는 영향을 주지 않습니다.
솔루션
이 문제를 해결하려면 기본 값을 직접 수정해야 합니다. 값 유형의 경우 임시 변수에 복사본을 저장하고 해당 변수에 속성을 설정하면 됩니다.
<code class="language-csharp">Point originCopy = Origin; originCopy.X = 10; Origin = originCopy;</code>
또는 자체 백업 필드를 만들어 값 유형을 저장하고 필드를 직접 수정할 수도 있습니다.
<code class="language-csharp">private Point _origin; public Point Origin { get { return _origin; } set { _origin = value; } }</code>
이런 방법으로 Origin
속성을 직접 수정할 수 있습니다:
<code class="language-csharp">Origin.X = 10; // 此行现在可以正常工作,不会报错</code>
위 내용은 C#의 자동 구현 속성에서 '반환 값을 수정할 수 없습니다'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!