쉬운 하나. 나는 검색하려고했지만 기쁨은 없다..NET, 필드가 널인지 여부를 설정하는 방법
A
유형의 개체가 있고 B
유형의 공개 필드 F
이 있다고 가정합니다. 나는 B
의 인스턴스를 만들고 A.F=B
을 설정합니다.
A.F == null
의 결과는 거짓입니다. A.F is B
의 결과는 True입니다.
하지만 B
은 null로 설정됩니다. A.F
속성에는 여전히 이전 인스턴스 B
의 핸들이 들어 있습니다. A.F
의 런타임 조회는 여전히 B
유형으로 표시됩니다. 따라서 테스트 A.F == null
은 여전히 False를 나타내며, A.F is B
테스트는 여전히 True를 제공합니다. B
이 휴지통에도 불구하고.
A.F
속성을 검사하여 해당 핸들이 사라진 개체를 가리키는 지 확인하려면 어떻게해야합니까?
FB 참조 용 :-) – Yahia
소년 나는 어리 석을 느낍니다. 예, 포인터가 아직 남아 있으므로 그대로 유지됩니다. 객체에 대한 모든 포인터를 휴지통에 버릴 수 있습니까? 나는 현재 코드를 사용하고 있으므로 객체 B는 그것에 대한 모든 참조 목록을 유지해야합니다. 그래서 B를 파괴하면 모든 포인터를 없앨 수 있습니다. 즉, B에 대한 참조를 설정할 때마다 B가 해당 참조를 기록 할 수 있도록 B 내부의 메서드를 호출해야합니다. –
@David 아니, 그렇게 할 방법이 없습니다. –