더 좋은 제목이 있으면 알려주십시오. 메서드 참조 매개 변수로 참조 매개 변수
나는 이것 때문에 대신 DisposeHelper을했다 :private Something _thing;
void Dispose()
{
DiposeHelper.Dipose(ref _thing);
}
을하지만 분명히 내가 참고로 DisposeHelper.Dispose는 IDisposable을 공급 할 수 없습니다
private Something _thing;
void Dispose()
{
if(_thing != null)
{
_thing.Dispose();
_thing = null;
}
}
... 내가이 작업을 수행 할 수 , 내가 그렇게 좋아는 IDisposable로 뭔가를 캐스팅하지 않는 :
private Something _thing;
void Dispose()
{
IDisposable d = _thing;
DiposeHelper.Dipose(ref d);
}
... 그 다음 NUL하지 않는 것을 의미하는 원래 필드를 lify.
다음은 좀 더 추상적 인 예입니다. DoThis는 작동하지 않으며, DoThat은 다음을 수행하지 않습니다.
public class Test
{
public Test()
{
Something o = new Something();
DoThis(o);
DoThat(ref o);
}
private void DoThis(IFoo obj) { }
private void DoThat(ref IFoo obj) { }
}
public class Something : IFoo { }
public interface IFoo { }
왜 내가 할 수 없습니까?