Code: Select all
public class A : IDisposable
{
// ...
int foo
public A()
{
SomeObj.SomeEvent += DoSomething;
}
public void Dispose()
{
SomeObj.SomeEvent -= DoSomething;
}
}
< /code>
Änderung a.dispon (), um gc.suppressFinalize (Objekt) aufzurufen. Dies verhindert abgeleitete Typen, die ein Finalizer daran hindern, 'idisposable' neu zu implementieren, um ihn zu nennen. Aber ich verstehe immer noch nicht genau, wofür das ist (mehr Erklärung unten). Also [b] meine Fragen sind [/b]:
Sollte ich immer nur gc.suppressFinalize (Objekt)