1、sealed 修饰符
概念:
C#提出了一个密封类(sealed class)的概念,帮助开发人员来解决这一问题。 密封类在声明中使用sealed 修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的。 sealed(C# 参考) sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与 override(C# 参考) [ http://msdn2.microsoft.com/zh-cn/library/ebca9ah3(VS.80).aspx ] 一起使用。
用途:
目前本人只在单例模式中运用过这个修饰符:
首先对单例模式进行个简单的描述(本人的理解,有误请指出):第1点要求:保证了一个类有且只能有一个实例。
这样一来,我们就应想到,要想调用这个类里面的非静态方法时候,再也不能用我们熟悉的 Class c = new Class();来先实例化,再去点点点~
如下面这个例子,我们在Test方法里写了点东西,我们要想去调用这个方法,既然没法正常的实例化,那么就想个其他的办法。也就是说这个类得给我们提供一个访问它的全局访问点。
这就是单例模式的第2点要求,如例子中的GetInstance();具体实现,代码很简单,相信大家都能看懂。
public sealed class IndexManager { #region 单例模式之饿汉模式 能保证了在整个应用程序运行周期只创建一次实例(GetInstance方法来获得实例instance) private readonly static IndexManager instance = new IndexManager(); private IndexManager() { } /// <summary> /// 整个单例模式的全局访问点 /// </summary> /// <returns></returns> public static IndexManager GetInstance() { return instance; } #endregion public void Test() {...} }
tip:日积月累,小知识也能构建成一份不错的谈资。玩笑了,慢慢更新,日常能够用到,又不是很容易引起大家注意的点,争取都放到本文中。
时间: 2024-12-19 13:47:56