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

时间: 2024-12-19 13:47:56

C#小知识点积累的相关文章

一些零碎小知识点积累随笔

工作学习期间的一些零碎小知识点积累 1.蜂鸣器 1)有源蜂鸣器,这里的有源不是指电源的"源",而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声: 2)无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动,才能发声. 2.Altium Designer Winter 9 1)加载库 a.加载库,在Libraries面板上点击Libraries按钮或者选择菜单Design-->Add/Remove Library,这样可使用的库就显示在对话框中.

小知识点积累_linux

1. 建立层级目录:使用 mkdir 的 -p 选项,如 mkdir -p tmp/a/b/c.2. 解包到指定的目录:使用 tar 的 -C 选项,如 tar xvf newarc.tar.gz -C tmp/a/b/c.3. 联合命令:使用 ;.&&.|| 等控制运算符,如 cd tmp/a/b/c && tar xvf ~/archive.tar.4. 小心使用变量:把变量放到 “” 中,如 ~ $ ls tmp/a b~ $ VAR="tmp/*"

linux系统下用到的小知识点积累

preface:在ubuntu下做事情,在终端下执行一些命令.或者在vim里面做一些操作.自然而然须要用到一些小知识点,没有怎么系统地看<鸟哥的菜>,基本上是遇到了什么问题想要实现什么功能,就查找博客,学下该知识点,有些零散.便略微积累总结下. 1.批处理命令sh: 需在终端执行多个命令时,将那些命令写到一个文件中面,并命名XX.sh,在终端执行sh XX.sh可破,终端下将一个一个执行XX.sh文件中面的命令. 2.echo: 在批处理命令中.须要用命令输出自己想要的一些东西到终端的时候.e

前端小知识点积累

作为一名前端,一直想说,一入前端深似海啊.也许在很多人眼中,前端就是简简单单的写页面的,但实际上前端的水还都是很深的,具体就不做叙述了. 今天来的主要目的是分享平时积累的一些前端小知识 一:js,jq获取各种高度 Javascript: alert(window.screenTop);                     //浏览器距离Top alert(window.screenLeft);                     //浏览器距离Left alert(window.scre

HTML小知识点积累

1.怎样让heigth:100%起效? ??有时候我们设置heigth:100%,想让当前控件铺满整个屏幕,可是非常少情况下这个属性能达到我们想要的效果,这是为什么呢? ??而依据W3C的规范.百分比的高度在设定时须要依据这个元素的父元素容器的高度.所以,假设你把一个div的高度设定为height: 50%;.而它的父元素的高度是100px,那么.这个div的高度应该是50px. 那么,为什么没效果呢? ??浏览器根本就不计算内容的高度,除非内容超出了视窗范围(导致滚动栏出现).或者你给整个页面

php小知识点积累

好久没有用原生的php写过东西了,最近由于一个项目的原因要涉及到原生的php.直到现在才发现,连原始的语句都忘了,真是不敢说自己是学php的,丢人.(或许之前是因为一直在用框架,而框架都是将原生知识进行包装的,唉,好多东西都没有学透彻啊),现记录一些遇到的问题 php和html之间的相互嵌套:潜意识中只是觉得php嵌套在html中会有很多的单引号和双引号,但是一直没有系统地区分过.(1)php中嵌入html标签:<?php echo '<p>Hello World</p>';

小知识点积累

移动端 手机 1.点击图片或按钮,选中状态影响到其他范围解决:html{-webkit-user-select:none}<meta name="msapplication-tap-highlight" content="no" /> 2.禁止长按 a,img 标签长按出现菜单栏a, img { -webkit-touch-callout: none; /*禁止长按链接与图片弹出菜单*/} 3.去掉 a,input 在移动端浏览器中的默认样式(半透明灰色

记录神经网络中一些小知识点

记录神经网络中一些小知识点 1 Caffe中的blob维度 Caffe中的blob具有4个维度,分别是num,channel,width和height: 其中我们在定义各个网络层时,常用到的一个参数numout,就是指定的channel: 比如说,维度为1*3*5*5的数据输入网络(即每次输入一张5*5大小的3通道图),经过一个stride为2,pad为1,kernel为2,numout为2的卷积层后,维度就变成了1*2*3*3: 假如输入有n个通道,计算时,caffe就会对应产生n个filte

C++ 小知识点 WINAPI

int WINAPI WINMain 中,WINAPI含义 网友给出回答:在windef.h头文件中有如下定义#define WINAPI      __stdcall#define APIENTRY    WINAPIVC有两种函数调用方式 一种是__stdcall,另一种是__cdecl函数的调用方式有两种一种是PASCAL调用方式,另一种是C调用方式使用PASCAL调用方式,函数在返回到调用者之前将参数从栈中删除使用C调用方式,参数的删除是调用者完成的WinMain函数是由系统调用的,Wi