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

C#静态类与非静态类

1、静态类

静态类有几个重要的特点:
1)无法实例化:由于静态类不能被实例化,因此它不会占用对象内存。
2)静态成员:静态类只能包含静态成员(静态方法、静态属性、静态事件等)。
3)全局访问点:静态类可以作为全局访问点,提供对一组静态方法的访问。
4)无法继承:静态类不能被继承。由于它们不能被实例化,所以继承它们没有意义。

静态类使用关键字static 修饰,它的成员也要使用static 修饰,如下代码:
//自定义一个静态类

static class StaticClass
{public static string Name { get; set; } = "小王";public static int Add(int a, int b){return a + b;}public static int Multiply(int a, int b){return a * b;}
}

调用:

 int a = StaticClass.Add(10, 20);int b = StaticClass.Multiply(2, 4);Console.WriteLine(a);Console.WriteLine(b);Console.WriteLine(StaticClass.Name );

输出:

30
8
小王

上面的代码中Add方法是一个静态方法,使用类名.方法名 这样的方式去调用,Name 是一个静态属性,使用类名.属性名这样的方式去调用。

2、非静态类(使用的比较多)

1)可以实例化:你可以使用 new 关键字来创建非静态类的对象。
2)实例成员:非静态类可以包含实例成员(实例方法、实例属性、实例事件等),这些成员属于类的每个实例。
3)继承:非静态类可以被其他类继承,实现代码的重用和扩展。
这个非静态类也是一个引用类型,参考代码如下:

  class NotStaticClass{public string Name { get; set; } = "小李";public int Add(int a, int b){return a + b;}public int Multiply(int a, int b){return a * b;}}

调用:

 NotStaticClass notStaticClass = new NotStaticClass();notStaticClass.Add(10, 20);notStaticClass.Multiply(2, 4);Console.WriteLine(a);Console.WriteLine(b);Console.WriteLine(notStaticClass.Name );

输出:

30
8
小李

我们可以看到对于非静态类的调用都是使用new关键字,new这个类的对象出来,然后使用这个对象名.方法名 去调用方法,对象名.属性去获取属性。

总结

在C#编程中一般没有特别要求必须使用静态或者非静态类,一般使用非常频繁的类可以写成静态类。

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

相关文章:

  • 亚信安全:《2024云安全技术发展白皮书》
  • GuLi商城-商品服务-API-品牌管理-云存储开通与使用
  • git 命令行初始化并上传项目
  • Spring框架Mvc(2)
  • Python学习笔记29:进阶篇(十八)常见标准库使用之质量控制中的数据清洗
  • 【LLM】一、利用ollama本地部署大模型
  • Java毕业设计 基于SSM vue新生报到系统小程序 微信小程序
  • 玩转云服务:Oracle Cloud甲骨文永久免费云服务器注册及配置指南
  • Zabbix——宏
  • Unity 简单载具路线 Waypoint 导航
  • 科普文:微服务之服务网格Service Mesh
  • 第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题
  • STM32-HAL-FATFS(文件系统)(没做完,stm32f103zet6(有大佬的可以在评论区说一下次板子为什么挂载失败了))
  • 线性代数基础概念:矩阵
  • 【优化论】约束优化算法
  • 7寸微型FPV无人机技术详解
  • 大数据面试题之Presto[Trino](2)
  • STM32和DHT11使用显示温湿度度(代码理解)+单总线协议
  • EVM-MLIR:以MLIR编写的EVM
  • 深入Django(八)
  • 华为开发者大会2024纪要:鸿蒙OS的全新篇章与AI大模型的革命
  • 吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.7-2.8
  • 云计算渲染时代:选择Blender或KeyShot进行高效渲染
  • html5中的iframe
  • 海睿思问数(TableGPT):开创企业新一代指标应用模式
  • LM-Cocktail:一种创新的模型合并方法打破预训练语言模型微调后的性能局限,实现语言模型在一般任务与特定领域的均衡高性能
  • 默认导出(default)和命名导出
  • 开发个人Go-ChatGPT--1 项目介绍
  • 皮卡超级壁纸 | 幸运壁纸幸运壁纸app是一款涵盖了热门影视剧、动漫、风景等等资源的装饰工具,
  • 普通集群与镜像集群配置