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.mzph.cn/diannao/41601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

步进电机改伺服电机

步进电机: 42:轴径5mm 57:轴径8mm 86:轴径14mm 【86CME120闭环】// 12牛米 伺服电机: 40: 60: 80: 86: ECMA——C 1 0910 R S 4.25A 轴径…

评价ChatGPT与强人工智能的未来

在人工智能领域,ChatGPT的出现无疑是一个里程碑事件。它不仅展示了自然语言处理技术的巨大进步,也引发了人们对于强人工智能(AGI)的无限遐想。本文将从多个角度评价ChatGPT,并探讨强人工智能距离我们还有多远。 ChatGP…

虚拟地址和物理地址

到底什么是虚拟地址呢?它和物理地址的区别又在哪呢? 一. 虚拟地址的作用 1. 使代码的移植性更好,在不同平台进行编译以后,就可以直接运行,因为到别的系统,会将你的虚拟地址转换为物理地址,而使…

无人机运营合格证及无人机驾驶员合格证(AOPA)技术详解

无人机运营合格证及无人机驾驶员合格证(AOPA)技术详解如下: 一、无人机运营合格证 无人机运营合格证是无人机运营企业或个人必须获得的证书,以确保无人机在运营过程中符合相关法规和标准。对于无人机运营合格证的具体要求和申请…

无人机人员搜救

人员搜救-水域救援 水域搜救:快速水面搜查 物资抛投:救生物资抛投 绳索牵引:牵引救援绳索 领航船艇:水面侦察领航 人员搜救 昼夜搜救,精准定位 水域搜救 经纬 M300 RTK 搭载禅思 H20T 能够满足全天候作业需求&a…

【区分vue2和vue3下的element UI Dialog 对话框组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 和 Vue 3 中,Element UI(针对 Vue 2)和 Element Plus(针对 Vue 3)提供了 Dialog 对话框组件,用于在页面中显示模态对话框。这两个库中的 Dialog 组件在属性、事件和方法的使用上有所相似&#xff…

新手教学系列——Git Stash踩坑

在之前的文章《如何彻底避免Git代码相互覆盖问题》中,我曾介绍过通过规范分支合并和使用git stash来避免代码覆盖问题。今天,我要深入探讨一下git stash的使用,并分享一些使用过程中遇到的坑,希望能帮你避免类似问题。 脚本mg.sh简介 为了更好地管理代码合并,我编写了一…

gcc: 自身编译: opt;有个变量怎么找不到?

文章目录 makefile/configure中间awk的转换举例,options.h里的内容:解开疑问makefile/configure lang_opt_files=@lang_opt_files@ $(srcdir)/c-family/c.opt $(srcdir)/common.opt# All option source files ALL_OPT_FILES=$(lang_opt_files) $(extra_opt_files

linux之管道重定向

管道与重定向 一、重定向 将原输出结果存储到其他位置的过程 标准输入、标准正确输出、标准错误输出 ​ 进程在运行的过程中根据需要会打开多个文件,每打开一个文件会有一个数字标识。这个标识叫文件描述符。 进程使用文件描述符来管理打开的文件(FD--…

windows USB 设备驱动开发-控制传输的数据包

每次在主机控制器和 USB 设备之间移动数据时,都会发生传输。 通常,USB 传输可大致分为控制传输和数据传输。 所有 USB 设备都必须支持控制传输,并且可以支持用于数据传输的端点。 每种类型的传输都与设备缓冲区USB 端点 的类型相关联。 控制传…

泛微开发修炼之旅--32ecology对接海康威视综合安防管理系统,人脸识别机器数据同步代码方案及源码

文章链接:32ecology对接海康威视综合安防管理系统,人脸识别机器数据同步代码方案及源码

解锁深度学习黑箱:注意力机制的神秘力量

标题:解锁深度学习黑箱:注意力机制的神秘力量 在深度学习领域,注意力机制(Attention Mechanism)是一种资源分配策略,它使得模型能够集中于数据中最重要的部分。注意力机制在自然语言处理(NLP&a…

Open3D 在点云中构建八叉树

目录 一、概述 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2构建后点云 一、概述 八叉树(Octree)是一种树状数据结构,用于递归地将3D空间分割成较小的立方体。八叉树特别适用于3D计算机图形学、点云处理和空间…

[图解]企业应用架构模式2024新译本讲解22-标识映射

1 00:00:01,080 --> 00:00:04,710 我们来看一下标识映射这个模式 2 00:00:08,030 --> 00:00:10,110 它是属于对象-关系 3 00:00:10,120 --> 00:00:11,150 行为模式 4 00:00:11,160 --> 00:00:13,890 就是说,在动态的时候 5 00:00:15,770 --> 00:…

华为OD机考题(HJ65 查找两个字符串a,b中的最长公共子串)

前言 经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。 描述 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 注:子串的定义:将一个字符串删去前缀和后…

【Git 】规范 Git 提交信息的工具 Commitizen

Commitizen是一个用于规范Git提交信息的工具,它旨在帮助开发者生成符合一定规范和风格的提交信息,从而提高代码维护的效率,便于追踪和定位问题。以下是对Commitizen的详细介绍。 1、Commitizen的作用与优势 规范提交信息:通过提供…

C# Application.DoEvents()的作用

文章目录 1、详解 Application.DoEvents()2、示例处理用户事件响应系统事件控制台输出游戏和多媒体应用与操作系统的交互 3、注意事项总结 Application.DoEvents() 是 .NET 框架中的一个方法,它主要用于处理消息队列中的事件。在 Windows 应用程序中,当一…

Oracle PL / SQL INTERVAL数据类型

INTERVAL YEAR TO MONTH数据类型 INTERVAL YEAR TO MONTH存储和操作年和月的间隔。 语法是: INTERVAL YEAR[(precision)] TO MONTH precision指定“years”字段中的数字位数。 我们必须在0..4的范围内使用整数字面值。默认值为2。 以下代码显示如何将字面值分配…

基于16通道AD采集(CL1616和AD7616)的FPGA设计简介

Cl1616是一款 16 位 DAS,支持对 16 个通道进行双路同步采样。CL1616 采用 5 V 单电源供电,可以 处理10 V、5 V 和2.5 V 真双极性输入信号,同时每对通道均能以高达 1 MSPS 的吞吐速率和 90 dB SNR 采样。利用片内过采样模式可实现更高的 SNR 性能。 AD7616与CL1616软硬件兼容…

实验四 图像增强—灰度变换之直方图变换

一.实验目的 1.掌握灰度直方图的概念及其计算方法; 2.熟练掌握直方图均衡化计算过程;了解直方图规定化的计算过程; 3.了解色彩直方图的概念和计算方法 二.实验内容: …