2010-03-31 3 views

답변

1

explicit interface implementation입니다. 이 메서드를 호출하는 유일한 방법은 IDisposable 개체로 전송하는 것입니다. 이것이 유용한 경우의 한 좋은 예는 동일한 메소드 이름을 갖고 두 클래스 모두에 서로 다른 구현을 제공하려는 두 인터페이스를 구현하는 클래스가있는 경우입니다.

+0

나는 그것을 이해합니다. 그 이유가 무엇인지 알아 내려고 노력 중입니다. IDisposable의 명시 적 구현을 ​​본 적이 없습니다. 뚜렷한 질문. – Simon

+2

'HashAlgorithm' 클래스에'IDisposable' 인터페이스를 명시 적으로 구현 한 이유를 모르겠지만 ** 나쁜 사례라고 말할 수 있습니다. using 블록은 명시 적으로 'IDisposable'구현이있는 클래스에서 작동하지만 객체 모델을 탐색하는 개발자는 객체에 Dispose 메소드가 있다는 것을 알지 못해 조기 정리를 이용할 수 없습니다. –

+0

@DarinDimitrov : 'IDisposable'의 명시 적 구현은 구현이 아무 것도하지 않고 클래스가 특정 유형의 것으로 알려진 것에 호출 할 필요가 없다는 것을 알리고 싶어하는 경우에 유용합니다. 나는 그런 무방 방법을 구현하는 적절한 방법은 명시 적으로 빈 메서드를 구현하는 것이라고 가정합니다. 명시 적 구현은 위와 같이'Dispose' 메소드가 묶여있는 경우에는 적절하지 않지만 일부 코딩 정책에서는 표시된대로 구현을 모두 처리해야 할 수도 있습니다. – supercat

관련 문제