C#의 클래스 필드 할당에서 참조 유지
클래스 필드에 대한 참조로 값을 할당하려고 하면 예기치 않은 동작이 발생할 수 있습니다. 제공된 예에서 "ref 매개변수"를 필드에 할당하면 참조 손실이 발생했습니다.
제한 사항 이해
C#에서는 필드 선언을 다음 항목에 대한 참조로 제한합니다. 변수. 이는 잠재적인 결과 때문입니다.
한계 극복
실제 참조 필드는 불가능하지만 대안이 있습니다.
옵션 1 : 래퍼 클래스 생성
다음을 포함하는 래퍼 클래스를 생성할 수 있습니다. 참조된 값을 속성으로 사용합니다. 클래스는 참조를 효과적으로 보존하면서 값을 가져오고 설정하는 메서드를 제공할 수 있습니다.
public class Wrapper { public int Value { get; set; } } ... Wrapper wrapper = new Wrapper { Value = 123 };
옵션 2: 람다 표현식 사용
람다 표현식을 사용하여 다음을 수행할 수 있습니다. 참조된 변수에 대한 getter 및 setter를 정의합니다. 이는 대리자를 통해 변수에 대한 참조를 할당합니다.
public delegate int Getter(); public delegate void Setter(int value); ... Getter getter = () => y; Setter setter = z => { y = z; };
결론
참조 필드 제한의 이유를 이해하고 래퍼 클래스와 같은 대체 기술을 사용합니다. 또는 람다 식을 사용하면 C#의 클래스 필드 할당에서 참조와 유사한 동작을 달성할 수 있습니다.
위 내용은 C#에서 클래스 필드에 값을 할당할 때 참조를 어떻게 유지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!