你的位置:首页 > ASP.net教程

[ASP.net教程]C#小知识点积累


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:日积月累,小知识也能构建成一份不错的谈资。玩笑了,慢慢更新,日常能够用到,又不是很容易引起大家注意的点,争取都放到本文中。