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

11.3笔记

在C#中,静态类和普通类(实例类)有一些关键的区别:

  1. 实例化

    • 普通类:可以被实例化,即创建对象。每个对象都有自己的状态和方法。
    • 静态类:不能被实例化,它们不包含构造函数,不能创建对象实例。
  2. 成员访问

    • 普通类:成员(方法、属性等)可以是实例成员也可以是静态成员。实例成员需要通过类的实例来访问,而静态成员可以直接通过类名访问。
    • 静态类:只能包含静态成员。所有成员都必须是静态的,不能有实例成员。
  3. 构造函数

    • 普通类:可以有构造函数,用于初始化新创建的对象。
    • 静态类:不能有构造函数,因为它们不能被实例化。
  4. 继承

    • 普通类:可以被继承,其他类可以扩展其功能。
    • 静态类:不能被继承,它们是密封的(sealed)。
  5. 内存分配

    • 普通类:每次创建实例时,都会在堆上分配内存。
    • 静态类:不分配内存给类本身,只分配内存给静态成员。
  6. 生命周期

    • 普通类:对象的生命周期从创建到垃圾回收。
    • 静态类:静态类本身没有生命周期,但是静态成员的生命周期从类被加载到应用程序域中直到应用程序域被卸载。
  7. 多线程访问

    • 普通类:实例成员在多线程环境中需要考虑线程安全问题。
    • 静态类:静态成员在多线程环境中也需要考虑线程安全问题,因为它们是全局可访问的。
  8. 用途

    • 普通类:用于创建具有独立状态和行为的对象。
    • 静态类:用于定义工具类或辅助类,这些类不需要实例化,只提供服务或功能。

静态类通常用于不需要对象实例就能访问的类,比如工具类(Utility classes),它们提供一组静态方法来执行任务

http://www.lryc.cn/news/476008.html

相关文章:

  • 数据结构之线段树
  • vue 快速入门
  • iframe视频宽度高度自适应( pc+移动都可以用,jq写法 )
  • Observability:OpenTelemetry Elastic 分发简介
  • golang的RSA加密解密
  • 深度学习-梯度消失/爆炸产生的原因、解决方法
  • MVC(Model-View-Controller)模式概述
  • 数据结构 —— 红黑树
  • 《功能高分子学报》
  • Linux特种文件系统--tmpfs文件系统
  • 《基于STMF103的FreeRTOS内核移植》
  • 一七二、Vue3性能优化方式
  • 软件测试--BUG篇
  • Scikit-learn和Keras简介
  • python在word的页脚插入页码
  • Java面试题十四
  • yarn : 无法加载文件,未对文件 进行数字签名。无法在当前系统上运行该脚本。
  • Hadoop——HDFS
  • 计算机的一些基础知识
  • 学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)
  • 【设计模式】策略模式定义及其实现代码示例
  • list与iterator的之间的区别,如何用斐波那契数列探索yield
  • 抖音店铺数据也就是抖店,如何使用小店数据集来挖掘价值?
  • KubeVirt 安装和配置 Windows虚拟机
  • CM API方式设置YARN队列资源
  • Mysql常用语法一篇文章速成
  • Intel nuc x15 重装系统步骤和注意事项(LAPKC71F、LAPKC71E、LAPKC51E)
  • Linux之实战命令59:iwlist应用实例(九十三)
  • 数据库_SQLite3
  • .Net Framework里演示怎么样使用StringBuilder、Math.Min和String.Format