C#中的static

本篇文章转载自C#中的static_Hello Bug.的博客-CSDN博客_c# static,总结的比较简洁到位,所以进行收录分享。

一:介绍
static是静态的不变的,static可以修饰类、字段、属性、方法等

二:静态类

静态类与私有构造函数类似,它本身是一个密封抽象类,不能被实例化不能被继承。通常工具类被定义为静态类

——静态类中只能包含静态成员
——静态类不能被实例化
——静态类不能被继承

三:静态变量

C#中没有全局变量的概念,所有的变量必须由该类的实例对象进行操作,这样做是为了提升安全性,但是有些时候会显得很不方便,所以引入了静态变量

——静态变量属于类,所以是通过类名去访问的。非静态变量是当该变量所在的类被实例化后,通过实例化的对象访问
——静态变量可以理解为是全局变量,被所有类所共享,即一个类中改变了这个静态变量后,其他类读到的就是变化后的值。非静态变量是局部变量,不共享改变的值
——静态变量只被创建一次,在类第一次被使用时,类中的所有静态变量都被创建在内存当中,直到它所在的类的程序运行结束时才消亡。而非静态变量需要类被实例化后才会分配内存。所以建议一般使用非静态类
——静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存
——静态变量生命周期为应用程序的生命周期。非静态变量的生命周期取决于实例化的类的生命周期

四:静态方法
——静态方法中不能包含非静态成员和非静态方法,因为静态方法被调用的时候,非静态对象有可能还不存在

posted @ 2022-10-27 14:05  中阳里士  阅读(1766)  评论(0编辑  收藏  举报