.NET :静态类的理解

简介:   静态类是一种声明为 static 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。

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

  静态类的主要特点如下:  

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

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

  使用静态类的优点在于:

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

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

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

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

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

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

目录
相关文章
一起谈.NET技术,.NET :静态类的理解
  静态类是一种声明为 static 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。
640 0
.NET :静态类的“.NET技术”理解
  静态类是一种声明为 stat上海企业网站制作ic 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在上海企业网站设计与制作加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。
671 0
.NET :静态类的“.NET研究”理解
  静态类是一种声明为 static 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时上海徐汇企业网站制作om'>上海网站建设由 .NET Framework 公共语言运行库 (CLR) 自动加载。
629 0
|
程序员
《.NET程序员面试秘笈》----面试题6 请简述静态类和静态类成员
【考点】静态类和静态类成员的理解,static在应用中的特殊性。
1387 0
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
47 0
|
18天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
22 0
|
2月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
32 0
|
2月前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
113 5