I'm having a problem trying to override IDisposable.Dispose() in a C#
class that inherits a C++/CLI class that implements Dispose(). The
compiler says
Error 13 'JM.UI2.EditBoxDataModel.Dispose()': cannot override inherited
member 'JM.UI.Base.Dispose()' because it is not marked virtual,
abstract, or override
C:\depot-jmatzen-dell\depot\game14\src\engine\UI2\UIEditBox.cs 19 26 UI2
But in fact, in my base class I have ~Base() declared as virtual (and I
think it's virtual by default anyway but that's beside the point):
virtual ~Base();
Here's my C# class
public class EditBoxDataModel
: Base
{
public override void Dispose()
{
}
};
Any thoughts?
Ben Voigt - 25 Sep 2006 17:27 GMT
> I'm having a problem trying to override IDisposable.Dispose() in a C#
> class that inherits a C++/CLI class that implements Dispose(). The
[quoted text clipped - 4 lines]
> or override C:\depot-jmatzen-dell\depot\game14\src\engine\UI2\UIEditBox.cs
> 19 26 UI2
The compiler is nit picking here. You can't override JM.UI.Base.Dispose.
You can override IDisposable.Dispose.
Just write
public class Sub : Base, IDisposable
{
public void Dispose()
{
}
}
> But in fact, in my base class I have ~Base() declared as virtual (and I
> think it's virtual by default anyway but that's beside the point):
[quoted text clipped - 12 lines]
>
> Any thoughts?