C# 中的 public、static 和 void 关键字有什么区别

news/2025/1/25 4:41:14/文章来源:https://www.cnblogs.com/cuay/p/18501211

在C#编程语言中,publicstaticvoid都是关键字,但它们具有不同的目的和用途。public是一个访问修饰符,表示类或类的成员可以从任何地方访问;static指定某一成员属于类型本身,而不是某个对象实例;而void是一个返回类型,表示方法不返回任何值。理解这三个关键字的核心差异对于编写高效和准确的C#代码至关重要。

1、public: 访问修饰符

C#中的public关键字是一个访问修饰符。使用它可以确保类、结构、枚举或接口可以从其他任何代码位置访问。如果没有指定访问修饰符,将默认为private。使用public是为了使某些代码元素向外公开,并能够在其他地方使用。

例子:

public class HelloWorld { public string Greet() { return "Hello, World!"; } }

2、static: 类型级别的成员

static关键字在C#中用于声明一个静态成员。这意味着这个成员属于类本身,而不是类的某个实例。因此,静态成员在内存中只有一个副本,不需要创建类的实例就可以访问它。

例子:

public class Calculator { public static int Add(int a, int b) { return a + b; } } // 调用方法 int result = Calculator.Add(5, 3);

3、void: 无返回的方法

void关键字在C#中表示方法不返回任何值。通常,当您希望方法执行某些操作但不需要返回任何结果时,可以使用void作为返回类型。

例子:

public class Printer { public void PrintMessage(string message) { Console.WriteLine(message); } }

结论:虽然publicstaticvoid都是C#的基本关键字,但它们的用途和含义是完全不同的。public控制访问级别,static定义类型级别的成员,而void指定一个方法不返回任何值。理解它们的区别和如何使用是每个C#开发者的基本技能。


常见问答:

Q1: 如果一个方法既是 public 又是 static,它的含义是什么?

A1: 当一个方法被标记为 public static,这意味着该方法既可以从其他类和代码位置访问(因为它是public的),又属于类本身而不是类的任何特定实例(因为它是static的)。这样的方法通常用于实用程序或工具方法,不依赖于任何特定对象的状态。

Q2: 如果不为类成员指定访问修饰符,它默认是什么修饰符?

A2: 在C#中,如果不为类的成员指定任何访问修饰符,它默认是 private。这意味着该成员只能从其包含的类内部访问。

Q3: 为什么我无法在非静态方法中直接访问静态成员?

A3: 实际上,在非静态方法中是可以直接访问静态成员的。但反过来就不行,静态方法不能直接访问非静态成员,因为静态方法属于类本身,而非静态成员需要类的实例来访问。

Q4: 如果我有一个返回类型为void的方法,我是否可以在该方法中使用return语句?

A4: 是的,你可以在返回类型为void的方法中使用return语句,但这样的return语句后面不能跟任何值。它通常用于提前结束方法的执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/822959.html

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

相关文章

go高并发之路——本地缓存

一、使用场景 试想一个场景,有一个配置服务系统,里面存储着各种各样的配置,比如直播间的直播信息、点赞、签到、红包、带货等等。这些配置信息有两个特点: 1、并发量可能会特别特别大,试想一下,一个几十万人的直播间,可能在直播开始前几秒钟,用户就瞬间涌入进来了,那么…

7-2 求最大值及其下标

一维数组 7-2 求最大值及其下标 题目题解 #include <stdio.h>int main() {int a[10],i,n,max,index;//max记录最大值,index记录最大值下标scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);//依次输入n个值,存入数组,C99,支持a[i]…

Syncfusion宣布开源其为.NET MAUI开发的14个控件

.NET MAUI是Xamarin.Forms的进化版,增加了对构建桌面应用的支持。.NET MAUI的特点包括统一的框架、对桌面应用的支持、性能改进、使用现代技术以及开源特性。开源 .NET MAUI (多平台应用 UI) 的其他要点包括:统一框架:.NET MAUI 将适用于 Android、iOS、macOS 和 Windows …

Aspera 下载fastq数据过程

001、去EBI找数据,以SRA号SRR1342456为例: 官网:https://www.ebi.ac.uk/ena/browser/home a、 b、 c、 d、 002、开始下载[b20223040323@admin2 x_ljx_test]$ ls [b20223040323@admin2 x_ljx_test]$ ascp -v -Q -T -l 200m -P 33001 -k 1 -i ~/.aspera/connect/etc/aspe…

API网关(API Gateway)和反向代理有什么区别

API网关(API Gateway)和反向代理的区别主要在以下几个方面:一、功能定位;二、服务对象;三、灵活性;四、性能;五、安全性;六、可扩展性等。功能定位是指,API网关专门用于管理和转发API请求的服务器, 反向代理是用于代表后端服务器接收并处理客户端请求的服务器。一、功…

HTTP相关返回值异常如何解决(上篇)

​ 今天我们讲讲HTTP相关返回值异常如何解决(实例持续更新中) 一、HTTP介绍 HTTP(超文本传输协议,Hypertext Transfer Protocol)是用于在网络上进行数据交换的应用层协议。它是万维网(WWW)的基础,允许客户端(通常是网页浏览器)与服务器之间进行通信。以下是对 HTTP 的…

066 props配置

一般开发中简单声明写得多

如何解决Linux服务器上的网络连接重置问题

​在Linux服务器的运维过程中,网络连接重置是一个常见的问题。要解决此问题,我们需要遵循以下步骤:1.诊断问题来源;2.检查防火墙规则;3.考察网络配置;4.验证软硬件设置;5.探索外部因素。首先,要确定网络连接重置的原因,只有找到原因才能进行针对性的解决。1.诊断问题来…

高级语言程序设计第四个人作业

班级链接:https://edu.cnblogs.com/campus/fzu/2024C/ 我的链接:https://i.cnblogs.com/posts/edit 学号:102400131 姓名:叶宇恒 157891012131516187.17.2 7.4 567891011

Tomcat弱口令上传war包

Tomcat弱口令上传war包 思路: ​ 利用弱口令登录管理页面 ---> 部署war包 ---> getshell 环境: ​ vulhub靶场:tomcat/tomcat8 ​ 启动:sudo docker-compose up -d tomcat弱口令: ​ 默认页面,访问manager​ ​ 随便输入用户名+密码,bp抓包,可以看到用户名…

4.4(学号:3025)

MAX_A = 15 MAX_B = 24 MAX_DEBUG = 5 products = [ {"name": "Ⅰ", "A_hours": 1, "B_hours": 6, "debug_hours": 1, "profit": 2}, # 假设产品Ⅰ至少使用1小时设备A {"name": "Ⅱ", "…