0

我正在开发一个项目,我将 j# UI 代码转换为 C#。在旧代码 (j#) 中,有一个类扩展了表单和方法:

public void dispose()
{
   super.dispose();
   components.dispose(); 
}

将导入从:com.ms.wfc.ui更改system.windows.form为编译器要求我更改super.dispose()super.Dispose(). (与组件相同)。

我的问题是我是否也需要将上述方法更改Dispose为?在 J# 代码中它没有说这是否被覆盖,我想如果我不改变它,dispose()当这个表单关闭时不会被调用

4

2 回答 2

1

C# 区分大小写。而如果要重写表单的IDIsposable接口方法实现,必须用大写字母写成is:

public void Dispose()
{
   //...
}

希望,我正确理解了你的问题......

于 2013-04-03T14:51:59.810 回答
1

您不需要将 Dispose 方法声明为 override,将其更改为 Dispose() 就足够了。

public class MyClass : IDisposable
{
    public void Dispose()
    {
        // Perform any object clean up here.

        // If you are inheriting from another class that
        // also implements IDisposable, don't forget to
        // call base.Dispose() as well.
    }
}

这是在 C# 中使用 Dispose 的一个很好的教程:http: //www.codeproject.com/Articles/15360/Implementing-IDisposable-and-the-Dispose-Pattern-P

于 2013-04-03T14:59:17.303 回答