(매우 초보자 질문)모든 클래스가 IDisposable 인터페이스를 구현해야합니까?
나는 이것을 오해하지만 MSDN에서는 쓰는 모든 클래스에 Dispose 소멸자를 구현하는 것이 좋습니다. 내가 (당신이) 정말 모든 클래스 내가 쓰는 IDisposable 인터페이스를 구현해야합니까?
또한 "클래스"선언 다음에 줄에 "Implements"키워드를 넣을 수있는 인터페이스를 구현하는 데 적합한 구문입니까? 나는 "클래스"와 같은 줄에 넣었고 오류가 발생했습니다.
하나의 인터페이스에 의해 구현되는 방법을 코딩 할 때, 그것은 예를 들어,이 구문을 따라야하는 필수? 더 :
Public Sub Dispose() Implements IDisposable.Dispose
내가, 위의 코드에 대해 궁금하는 경우입니다 난 이 클래스는 네이티브 자원을 보유하고있는 경우 IDisposable
을 구현, 또는 다른 클래스의 인스턴스를 포함하는 경우에만 IDisposable
를 구현해야
가능한 중복 [왜 클래스는 IDisposable을 구현하는 것이 명시 적으로 대신 : 좋은 예는는 IDisposable 인터페이스를 구현하는 방법을 볼 수는 IDisposable 인터페이스를
확인이를 데이터베이스 연결을 처리하고 사용하는 DataAccesslayer를 만드는 암시 적으로?] (http://stackoverflow.com/questions/3119288/why-would-a-class-implement-idisposable-explicitly-instead-of-implicitly) –
마지막 두 질문에 대한 빠른 답변 : '구현'(및 'Inherits')는 구현 된 인터페이스 (상속 된 클래스)를 선언 할 때 클래스 내부 몸체에 있어야하고 메소드 선언에있는'Implements'는 같은 줄에 있어야하며 인터페이스를 구현하는 모든 메소드 (하프 이름이 일치하지 않으면 n). –
# 1에 대한 간단한 대답 : 아니요, 모든 클래스가 'IDisposable'을 구현해야하는 것은 아니며, MSDN이 그렇게하지 말라고 말하지 않습니다. 긴 대답 - http://stackoverflow.com/questions/492984/what-is-the-difference-between-managed-and-native-resources-when-disposing-ne –