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

11.3笔记

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

  1. 实例化

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

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

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

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

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

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

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

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

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


http://www.mrgr.cn/news/64710.html

相关文章:

  • 配置管理之Consul
  • Android——动态注册广播
  • 程序《工资分类收税》
  • Unity XR Interaction Toolkit 开发教程(2):导入 SDK【3.0 以上版本】
  • 数据结构之二叉树——堆 详解(含代码实现)
  • 驱动——线程断链和信息获取
  • 图解大模型训练系列:序列并行1,Megatron SP
  • 图像滤波技术详解与实践应用
  • 如何评价mamba,是一个比conda更优秀的包管理器吗?
  • RSA算法:公钥加密的实现与应用
  • 考研要求掌握的C语言(冒泡排序专题)
  • [Android]从FLAG_SECURE禁止截屏看surface
  • 周报_2024/11/3
  • 访问者模式:将操作与对象结构分离的设计模式
  • 插值表达式
  • 提高交换式网络可靠性之STP配置
  • modelscope下载Qwen2.5 72B 模型方法
  • Automattic 和 Matt Mullenweg 要求驳回 WP Engine 诉讼案中的关键索赔
  • GPRS是什么?
  • 嵌入式数据存储小记(bss,data,text,stack,heap)
  • ACIS创建各种基本体,举例说明
  • 使用Kafka构建大规模消息传递系统
  • JAVA开源项目 网上购物商城 计算机毕业设计
  • SAP ABAP开发学习——BADI增强操作步骤示例1
  • vscode makfile编译c程序
  • 创客匠人:打造IP陷入迷茫?20位大咖直播如何破局,实现财富增长