** 이 게시판은 댓글이 달리면 게시물을 삭제할 수 없습니다. **
** 내용의 장기노출이 곤란한 경우 [수정]을 통해 내용을 변경하시기 바랍니다. **
/using( gray gg = new gray());
//using( IplImage temp = gg.grayprosess(src))
//{
// result = temp.Clone();
//}
이런 using은 왜사용하는건가요?? 구글 검색해봐도 잘이해가 안갑니다..
using (객체 선언)
선언되는 객체가 using문이 끝날때 자동으로 해제 된다는 이야깁니다.
객체 선언;
객체 사용;
객체 Dispose(); (해제)
이걸 자동화 시켜주는 역할입니다. C# 에선 using 문을 쓰도록 권장하고 있습니다. 왜냐하면 dispose를 실수로 호출하지 않을수도 있고 가독성도 저하되기 때문입니다.
https://msdn.microsoft.com/ko-kr/library/yh598w02.aspx
인터페이스 멤버를 구현하지않습니다 라는 말만 뜨고..
혹시 사용법 예제 같은것이 있을까요??
예제: https://msdn.microsoft.com/en-us/library/yh598w02.aspx
IDisposable: https://msdn.microsoft.com/en-us/library/system.idisposable.aspx
수동으로 해제해줘야 하는 자원이 뭔지 잘 감이 안 온다.. 그러면 지금은 그냥 IDisposable을 가지고 있는 객체는 다 쓴 뒤 수동으로 Dispose()를 호출해주든지, 아니면 using으로 자동화해줘야 된다고 기억하시기만 하도 됩니다. 차차 왜 이게 필요한지 금방 알게 될거예요.
그럼 IDisposable이 아닌 객체에 using을 쓸 수는 없느냐.. 해당 인터페이스 구현만 해주면 못쓸 이유는 없지만, 일반적으로 그럴 이유가 없습니다. 수동 해제가 필요한 자원이 아니라는 뜻이니 그냥 using을 안 쓰면 되니까요.
gray 클래스나 IplImage 클래스 둘중 하나나 둘다 IDisposable 인터페이스로 참조하셔서 Dispose를 구현하시면 사용가능합니다. 안그러면 직접 해제 해주셔야 합니다.