public class Connection : IDisposable { ... }
처분 할 수있는 연결 클래스와
public class UsesConnection : IDisposable {
UsesConnection (Connection c) {...}
public void Dispose() {
c.Dispose();
...
}
...
}
는 어떻게 만듭니 까 그것은에 대한 종속성이있는 클래스를 가지고 있고 UsesConnection
클래스를 돌려 사용 CA2000
에러가 발생하지 않으십니까?
다음 코드는 c = new Connection();
Connection c = null;
UsesConnection u = null;
try {
c = new Connection()
u = new UsesConnection(c);
return u;
} catch {
if (u != null) u.Dispose();
else if (c != null) c.Dispose();
throw;
}
정말로 연결 하시겠습니까? Connection은 UsesConnection 외부에서 생성되었지만 함께 폐기 되었습니까? 나는 소유권을 잘 정의했다. A는 객체를 생성하며 객체를 처리 할 책임이 있습니다. –
"[CA2000의 MSDN 설명서] (http://msdn.microsoft.com/en-us/library/ms182289.aspx),"경고를 표시하지 않을시기 "절을 읽는 것이 좋습니다. *"경고를 표시하지 마십시오 ** 당신이 ** Close와 같은 Dispose를 호출하는 객체에 ** 메소드를 호출하지 않은 경우 ** 경고를 발생시키는 메소드가 IDisposable 객체가 객체 **를 래핑하는 경우 ** ** 명시 적으로 사건이 발생합니다 그 경고를 무시하거나 억제 할 수있는 곳으로 언급했는데 ... – elgonzo