C#面:final ,finally,finalize 的区别

final:修饰符(关键字)

如果一个类被声明为final , 意味着它不能再派生出新的子类,不能作为父类被继承。

因此,一个类不能即被声明为 abstract,同时又被声明为 final 。

将变量或者方法声明为 final ,可以保证它们在使用中不被改变。

被声明为 final 的变量,必须在声明时给定初始值,而在以后的引用中,只能读取,不可修改。被声明为final 的方法也同样只能使用,不能重载。

finally:

在异常处理时提供finally 块,来执行清除操作。

如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

Finalize:方法名

Finalize() 是 Object 的 protected 方法,子类可以覆盖该方法以实现资源清理工作,GC垃圾回收机制在回收对象之前调用 Finalize() 方法。

C# 类中使用了非托管资源,重写Finalize() ,在方法内部释放非托管资源。从而保证了当前类被释放的同时,也释放了内部使用的非托管资源。

这里的重写不能使用 override,而是使用析构函数来达到同样效果。

你可能感兴趣的:(c#,C#面试题,c#,.net,开发语言)