誰かがより良いタイトルを持っている場合は、私に教えてください。メソッド参照パラメータとしてのインタフェースパラメータ
私はこれに代えてDisposeHelperを作った:
private Something _thing;
void Dispose()
{
if(_thing != null)
{
_thing.Dispose();
_thing = null;
}
}
...私はこれを行うことができます:
private Something _thing;
void Dispose()
{
DiposeHelper.Dipose(ref _thing);
}
をしかし、どうやら私が参考にIDisposableをしDisposeHelper.Dispose養うことができません私はIDisposableとして何かをキャストしない限り、そうする:
private Something _thing;
void Dispose()
{
IDisposable d = _thing;
DiposeHelper.Dipose(ref d);
}
...これは、元のフィールドを照らし合わせる。
ここでは、より抽象的な例を示します。 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 { }
なぜ私はそれを行うことはできませんか?