c #windows窗体覆盖处理问题

时间:2013-04-03 14:47:31

标签: c# dispose j#

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

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

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

我的问题是,我是否需要将上述方法更改为Dispose? 在J#代码中,它不会说这是否覆盖,并且我认为如果我不改变它,dispose()将不会调用此表单是否接近

2 个答案:

答案 0 :(得分:1)

C#区分大小写。如果要覆盖表单的IDIsposable接口方法实现,则必须使用大写字母写:

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

希望,我理解你的问题......

答案 1 :(得分:1)

您不需要将Dispose方法声明为覆盖,如果将其更改为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