我正在开发一个项目,我将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()
将不会调用此表单是否接近
答案 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