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

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.mrgr.cn/news/67250.html

相关文章:

  • 【缓存与加速技术实践】Redis数据类型
  • 微服务系列二:跨微服务请求优化,注册中心+OpenFeign
  • Rust闭包(能够捕获周围作用域变量的匿名函数,广泛应用于迭代、过滤和映射)闭包变量三种捕获方式:通过引用(不可变引用)、通过可变引用和通过值(取得所有权)
  • 开车去内蒙古旅游要做什么准备?
  • 基于STM32的智能物联网家用机器人设计
  • 查看 Active NameNode 的服务 ID
  • C++进阶-->红黑树的实现
  • ECCV2024新鲜出炉!动态再训练-更新用于无源目标检测的Mean Teacher
  • 真题--数组循环题目
  • 【找规律】
  • Prometheus启动参数配置及释义
  • 计算机视觉读书系列(1)——基本知识与深度学习基础
  • webworker
  • HJ48 从单向链表中删除指定值的节点
  • **AI的三大支柱:神经网络、大数据与GPU计算的崛起之路**
  • RHCE作业四
  • 实验7-3-4 字符串替换
  • 2024年11月7日 十二生肖 今日运势
  • 【前端】MQTT:通信与聊天室实战
  • 三十三、Python基础语法(面向对象其他语法-下)
  • 非关系型数据库NoSQL的类型与优缺点对比
  • 基于 Vue3、Vite 和 TypeScript 实现开发环境下解决跨域问题,实现前后端数据传递
  • 代码随想录第十八天| 530.二叉搜索树的最小绝对差 、 501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先
  • 【FPGA】Verilog:理解德摩根第一定律: ( ̅A + ̅B) = ̅A x ̅B
  • 【真题笔记】21年系统架构设计师要点总结
  • dns服务器配置