一起谈.NET技术,.NET :静态类的理解

  静态类是一种声明为 static 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。 静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。

  静态类的主要特点如下:  

  • 它们仅包含静态成员。 
  • 它们不能被实例化。 
  • 它们是密封的。 
  • 它们不能包含实例构造函数。

  因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。

  使用静态类的优点在于:

  • 写在栈中,安全高速稳定,而且在执行的时候,十分优先。
  • 编译器能够执行检查以确保不致偶然地添加实例成员。
  • 编译器将保证不会创建此类的实利。

  类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。静态方法属于类所有,类实例化前即可使用。

  静态类和非静态类的区别:

  非静态类是储存有状态的一类操作过程,例如语言包的非静态类,声明了之后,可能获取语言的种类,语言元素和一些附加的东西。

  静态类可以视为类库里都是单一的过程,不存在“状态”的概念,就可以使用静态类。

  非静态类可以包含静态方法,但静态类不能包含非静态方法。  

时间: 2024-10-24 13:39:58

一起谈.NET技术,.NET :静态类的理解的相关文章

浅谈Java 对于继承的初级理解_java

概念:继承,是指一个类的定义可以基于另外一个已存在的类,即子类继承父类,从而实现父类的代码的重用.两个类的关系:父类一般具有各个子类共性的特征,而子类可以增加一些更具个性的方法.类的继承具有传递性,即子类还可以继续派生子类,位于上层的类概念更加抽象,位于下层的类的概念更加具体. 1.定义子类: 语法格式 [修饰符] class 子类名 extends 父类名{ 子类体 } 修饰符:public private protected default 子类体是子类在继承父类的内容基础上添加的新的特有内

《创业家》牛文文:少谈点模式多谈点技术

"模式"如同当年的"主义",流行于各种创业大赛.创业励志节目.论坛的"街头"式秀场 文/创业家 牛文文 "美国某某公司你知道吧?就是刚被戴尔.惠普.思科十几亿美元抢购的那家.我们的模式和它的一样,现在还没赢利,可将来起码有十几亿人民币的市值." "我开了小煤矿,但煤运不出去,上商学院之后受到启发,想搞模式创新,具体讲就是想在铁路边上搞个煤炭物流开发区,建一个大的物流和信息流平台,把分散的煤炭集中在我这个园区,这样和铁

一起谈.NET技术,.Net Discovery系列之-深入理解平台机制与性能影响 (中)

上一篇文章中Aicken为大家介绍了.Net平台的垃圾回收机制与其对性能的影响,这一篇中将继续为大家介绍.Net平台的另一批黑马-JIT.有关JIT的机制分析 ● 机制分析以C#为例,在C#代码运行前,一般会经过两次编译,第一阶段是C#代码向MSIL的编译,第二阶段是IL向本地代码的编译.第一阶段的编译成果是生成托管模块,第二阶段的编译成果是生成本地代码以供运行,从这里各位同学可以看出,第一阶段生成的MSIL是不能直接运行的.必须指出的是JIT在第一次编译IL后,会修改对应方法相应的内存地址入口

一起谈.NET技术,.Net Discovery系列-深入理解平台机制与性能影响(上)

转眼间<.Net Discovery>系列文章已经推出1年了,本文为该系列的第10-13篇文章,在本文中将对以前所讲的.Net平台知识做一个小小的总结与机制分析,引出并重点介绍这些机制对程序性能的影响与改进建议. 本文将分为四部分,分别讲述了:垃圾回收机制.即时编译机制.异常处理机制.字符串驻驻留机制的原理与性能改进建议. <.Net Discovery>系列的每篇文章撰写耗时都在2天以上,转载时麻烦著名作者Aicken(李鸣),并且未经作者同意,禁止一切商业用途! 一.关于垃圾回

一起谈.NET技术,理解POCO

理解POCO先要理解POJO 1.什么是POJO POJO的名称有多种,pure old java object .plain ordinary java object 等. 按照Martin Fowler的解释是"Plain Old Java Object",从字面上翻译为"纯洁老式的java对象",但大家都使用"简单java对象"来称呼它. POJO的内在含义是指那些没有从任何类继承.也没有实现任何接口,更没有被其它框架侵入的java对象.

一起谈.NET技术,理解.NET程序集的执行过程

对于一个已编译好的.NET程序集,Windows操作系统是如何启动执行的呢?日常使用中我们发现对于托管的和非托管的程序集编译器都会吧程序集编译成以.exe或.dll等为扩展名的文件,可见Windows加载器并没有区分是托管还是非托管的程序集,而且我们也知道对非托管的程序集是在编译器直接编译成了机器码,自然可以由CPU直接执行,而托管的.NET 程序集是包含复杂结构的MSIL代码,执行时会使用JIT即时编译器将IL代码编译成机器码,再由CPU执行,当然这期间还需要执行其它许多的工作,如加载CLR.

一起谈.NET技术,C#中int和System.Int32理解总结

    最近园里的TeamOne写了一篇<[C#] int与System.Int32有什么区别>,发现里面有不少精彩的评论,所以忍不住想这篇文章总结一下: 本文的主要参考资料: 1.<理解C#中的System.Int32和int:并非鸡和鸡蛋>@Author:Dixin 2.<[C#] int与System.Int32有什么区别>@Author:TeamOne 一.问题的来源 MSDN说,int只不过是System.Int32的别名而已,也就是说: int i=1;Sy

一起谈.NET技术,深入理解string和如何高效地使用string

一个月以前我写了一篇讨论字符串的驻留(string interning)的文章,我今天将会以字符串的驻留为基础,进一步来讨论.NET中的string.string interning的基本前提是string的恒定性(immutability),即string一旦被创建将不会改变.我们就先来谈谈string的恒定性. 一.string是恒定的(immutable) 和其他类型比较,string最为显著的一个特点就是它具有恒定不变性:我们一旦创建了一个string,在managed heap 上为他

老网工: 浅谈SDN技术的部署和未来

进入2017年,基于SDN的解决方案再次成为最热门的话题之一, 从运营商.到OTT再到大的企业都已经开始大谈SDN网络规划和部署,甚至WannaCry蠕虫爆发时有人谈到利用SDN的方法抵御.但是由于SDN的特殊性和网络具体环境的复杂性,不同客户SDN的部署实际上千差万别,作为从事网络领域20年的老网工深深感受到SDN与传统网络的巨大变化,在这里和大家分享一下SDN的部署经验和艰辛,抛砖引玉谈谈个人体会. 首先声明一点,今天讨论的SDN不再局限于传统的狭义SDN,传统的狭义SDN(基于Openfl