2010-04-24 2 views
0

그냥 objSample.dispose()가 objSample = null과 같음을 원합니다..Net : 정확합니까? objSample.dispose()는 objSample = null을 의미합니까?

실제로 이러한 디스어셈블러의 질문에 대한 답변을 얻을 수 있습니까? 방법?

+0

감사합니다 :

폐기 프로그래머가 그것을 원할 때 가비지 수집기에 걷어차하기로 결정 전까지 기다려야하지, 자원을 정리하는 규칙이다

가 귀하의 질문에 대답하기 위해,이 쓰기 모든 몸체 – odiseh

답변

1

아니, 객체를 폐기하는 null로 해당 개체에 대한 참조를 설정하는 것을 의미하지 않는다 감사드립니다. .

objSample.Dispose(); 
objSample = null; 
+0

'objSample = null'을 설정하면 변수의 값을 지우는 것 이외의 일은 발생하지 않습니다. 실제 인스턴스에는 아무 것도하지 않습니다. ** Dispose()는 단순히 가비지 수집의 대안이 아닙니다. IDisposable 인터페이스는 가비지 수집 **과 100 % 관련이 없습니다. –

+0

@ Adam : 따라서 objSample = null에 의해 객체를 가리키는 변수의 값을 지 웁니다. 그런 다음 그 객체를 "고아"라고 부를 수 있습니다. 따라서 G.C를위한 좋은 선택입니다. 그것을 "수집"합니다. 맞아? 그리고 처분 방법을 호출하면 어떻게됩니까? – odiseh

+0

@odiseh : 해당 개체에 대한 유일하고 유일한 참조라고 가정하고 그렇다면 가비지 수집 대상이됩니다. 그것은 * 언제나 * 수집된다는 보장은 없으며 단지 자격이 있음을 의미합니다. 'Dispose'를 호출 할 때 일어나는 일에 관해서는 클래스에 달려 있습니다. 'Dispose'는 특별한 방법이 아니며 단지'IDisposable' 인터페이스의 멤버입니다. 정확히 말하면,'Dispose'를 호출 할 때 그 클래스에 대한'Dispose' 메쏘드에있는 코드가 무엇이든간에 일어납니다. –

관련 문제