관리되는 리소스 만 사용하는 클래스가있는 경우 IDisposable 패턴을 완전히 구현할 필요가 없습니다. 내가 어떤 이유로 사용이 표시되지 않습니다C#에서 가장 단순한 IDisposable 패턴은 무엇입니까?
public class ManagedResourceClient : IDisposable
{
private ITheManagedResource _myManagedResource = new TheManagedResource()
public void Dispose()
{
if (_myManagedResource != null)
{
_myManagedResource.Dispose();
_myManagedResource = null;
}
}
}
:
은 분명히이 충분
- 이 같은 파이널 라이저는 IDisposable
- 구현에만 관리되는 리소스를 사용하는을은 '폐기 '플래그는 null 체크로 처리됩니다.
- GC 처리와 직접 호출을 구분할 필요가 없으므로 가상 처리 메소드입니다.
위의 사항을 올바르게 확인할 수 있습니까?
이 응용 프로그램입니다 멀티 스레드? –
"관리되는 리소스 만 사용하는 클래스가 있습니다."그러면 객체가 다른 관리되는 일회용 객체를 참조하는 예제 코드에서 알 수 있듯이 @Steve는 전혀 처리되지 않습니다. – Steve
세계의 거의 모든 C# 프로그래머를 위해, 이것은 작성해야 할 유일한 IDisposable 클래스 유형입니다. – Servy