静态类

   C#中提供了一些纯静态的类,比如说System.Math、System.Console,这种类一般提供的是不会发生变化的数据和行为,他们不会依赖于任何的对象,全表现为静态成员。这些数据和行为,可以直接通过“类名.数据”或是“类名.行为”进行调用,不需要实例化(静态类也不允许实例化)。
   静态类声明为static,只能包含静态成员,不能通过new进行实例化,是密封的不能被继承,不能包含实例构造函数,可以包含静态构造函数。静态类在加载时由 .NET Framework 公共语言运行库 (CLR) 自动加载。
  下面提供一个实例,其中test静态类完成的是根据半径计算圆的面积(通过静态函数成员实现),同时其中也存储了PI的值(通过静态数据成员实现),PI在静态构造函数中进行了初始化,当然也可以在定义的时候就完成初始化工作。
 

Code:
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Text;   
  4.   
  5. namespace StaticTest   
  6. {   
  7.     class Program   
  8.     {   
  9.         static void Main(string[] args)   
  10.         {   
  11.             Console.WriteLine("圆的面积是:{0}",test.GetCirleArea(4.5));   
  12.         }           
  13.     }   
  14.   
  15.     public static class test //通过static声明test为静态类   
  16.     {   
  17.         static double PI;//声明静态数据成员(PI)   
  18.   
  19.         static test()//可以在静态类中加入构造函数对静态成员进行初始化   
  20.         {   
  21.             PI = 3.14159;//在静态构造函数中初始化静态数据成员  
  22.         }   
  23.   
  24.         public static double GetCirleArea(double r)//声明静态函数成员(通过半径计算圆的面积)   
  25.         {   
  26.             return PI * r * r;               
  27.         }           
  28.     }       
  29. }  

  把类声明为static,主要有两方面的作用:一是防止通过代码来实例化一个类;二是防止在类的内部声明任何实例成员(包括字段、属性或方法)。
   静态类在CIL将标记为abstract和sealed,表明其是不可扩展的,即不能通过它派生出其他类,也不能通过“扩展方法”对此类进行扩展。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值