C#小知识点积累

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:日积月累,小知识也能构建成一份不错的谈资。玩笑了,慢慢更新,日常能够用到,又不是很容易引起大家注意的点,争取都放到本文中。

技术分享

以上是关于C#小知识点积累的主要内容,如果未能解决你的问题,请参考以下文章

C#基础知识八之访问修饰符

C#中sealed关键字

C#中的Sealed和J#中的Final比较(转载)

C# 修饰符

C# 类/方法修饰符

抽象类