当前位置: 首页 > article >正文

C#-类:静态成员的介绍

一:静态成员的介绍

关键字:static

修饰的 成员变量、方法、属性等,直接用类名点出使用。→ 全局性

1.1 为什么可以直接点出来使用

程序不可无中生有。所有对象、变量、函数均需分配内存空间

实例化对象即为,分配内存空间,在程序中产生一个抽象的对象

静态数据只能通过类访问,自然也不会有实例化

而程序开始运行时,就会为静态成员分配内存空间。所以我们就能直接使用。只要使用了它,直到程序结束时内存空间才会被释放。如此使静态成员具有唯一性

如果声明的静态成员过多,就会导致可动态支配的空间变少,GC的次数就会变多,游戏卡顿,内存崩溃等情况

静态函数中不能使用非静态成员 非静态函数可以使用静态成员

1.2 静态成员的作用
  1. 常用唯一变量的申明

  2. 方便别人获取的对象申明

  3. 静态方法:常用的唯一的方法申明 比如 相同规则的数学计算相关函数

1.3 常量和静态变量的区别

const(常量)可以理解为特殊的static(静态),都可以通过类名点出来使用

同:通过类名点出使用

异:

  1. const必须初始化,不能修改。static没有这个规则

  2. const只能修饰变量。static可以修饰很多

  3. const一定是写在访问修饰符后面的 ,static没有这个要求

二:静态成员的应用:单例模式

一个类,在整个程序的生命周期中,有且仅有一个该类对象存在

不能在外部实例化,直接通过该类类名就能得到唯一的对象

//简单的单例模式
class Test{
    private static Test test = new Test(); //在内部进行初始化
    public static Test testInstance{ //使用属性包裹:外部不能修改,避免在外部对类对象置空
      get{ return test; }
    }
    private Test(){} //外部不能初始化

    public int age = 1;
}
//在内部进行初始化,在外部不能修改只能得到,由此可使程序内有且仅有一个该类对象存在
----------
//调用
Console.WriteLine(Test.testInstance.age);

http://www.kler.cn/a/382570.html

相关文章:

  • 全面解析:网络协议及其应用
  • Python练习8
  • 实现GUI界面中的logo图片的编码与隐藏
  • mac上的一些实用工具
  • Windows、Linux系统上进行CPU和内存压力测试
  • .net为什么要在单独的项目中定义扩展方法?C#
  • LaTeX中的\pdfoutput命令:输出PDF
  • android 使用xml设置背景图片和圆角
  • 新兴好用办公软件,协作效率翻倍就用它了!ONLYOFFICE最近发布了文档8.2版本
  • 猫用宠物空气净化器推荐,希喂,美的哪款除毛好、噪音小?
  • dolphin 配置data 从文件导入hive
  • 智慧水肥一体化:道品科技现代农业的智能管理模式
  • 印度高速升降机行业深度分析及未来预测
  • Echats柱状图的横坐标用图片显示
  • Python机器学习:分类器决策函数详解
  • 【jvm】堆空间分代思想
  • Renesas R7FA8D1BH (Cortex®-M85) Flash的功能介绍
  • 美畅物联丨物联网通信新纪元:Cat.1与5G RedCap的差异化应用
  • [linux驱动开发--读设备树] 基于qemu9.1+linux内核6.11.0
  • Spire.PDF for .NET【页面设置】演示:获取 PDF 文件中的页数
  • python全栈开发《60.获取两个集合的差集》
  • 摩尔线程嵌入式面试题及参考答案(2万字长文)
  • 突破1200°C高温性能极限!北京科技大学用机器学习合成24种耐火高熵合金,室温延展性极佳
  • MongoDB笔记03-MongoDB索引
  • 站长推荐使用站群服务器的原因
  • [mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关