Если у кого-то есть лучший заголовок, дайте мне знать.метод Параметр интерфейса в качестве эталонных задач
Я сделал DisposeHelper так вместо этого:
private Something _thing;
void Dispose()
{
if(_thing != null)
{
_thing.Dispose();
_thing = null;
}
}
... я мог бы сделать это:
private Something _thing;
void Dispose()
{
DiposeHelper.Dipose(ref _thing);
}
Но, видимо, я не могу кормить DisposeHelper.Dispose в IDisposable в качестве ссылки , если я не отбрасываю что-то как IDisposable, так как:
private Something _thing;
void Dispose()
{
IDisposable d = _thing;
DiposeHelper.Dipose(ref d);
}
... что означало бы это не то NUL lify исходное поле.
Вот более абстрактный пример. DoThis работает, DoThis:
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 { }
Почему я не могу это сделать?