首页 > 编程语言 >C# 静态

C# 静态

时间:2023-03-17 11:35:31浏览次数:28  
标签:静态方法 C# counter PrintCounter 静态 实例 static IncrementCounter

静态方法

在面向对象编程中,静态方法是属于类而不属于对象实例的方法,它可以在不实例化类的情况下直接使用。也就是说,静态方法属于类,而不是属于类的对象实例。

静态方法通常用于执行不需要访问对象实例的操作,例如在启动时初始化全局数据或提供某些实用功能。由于静态方法不需要实例化对象就可以调用,因此它们可以更轻松地使用,而且更具灵活性。

在 C# 中,可以使用 static 关键字定义一个静态方法。以下是一个示例:
`
public class Calculator
{
public static int Add(int x, int y)
{
return x + y;
}
}

class Program
{
static void Main(string[] args)
{
// 调用静态方法
int sum = Calculator.Add(3, 5);
Console.WriteLine(sum); // 输出:8
}
}
`

在上面的示例中,我们定义了一个名为 Calculator 的类,并在其中定义了一个静态方法 Add。在 Main 方法中,我们使用 Calculator.Add 方法将 3 和 5 相加,并将结果存储在 sum 变量中,最后将其输出到控制台。

需要注意的是,静态方法只能访问静态成员变量或静态方法,它不能访问实例变量或实例方法。另外,静态方法无法被重写,因为它们不属于类的实例,而是属于整个类。

关于C#中静态方法只能访问静态成员变量或静态方法,请举出一个静态方法访问静态方法的例子

以下是一个示例程序,展示了如何在 C# 中编写一个静态方法,以及如何从静态方法中访问另一个静态方法: ``` using System;

public class ExampleClass {
private static int counter = 0;

public static void IncrementCounter() {
    counter++;
}

public static void PrintCounter() {
    Console.WriteLine("Counter value: {0}", counter);
}

}

class Program {
static void Main(string[] args) {
ExampleClass.IncrementCounter();
ExampleClass.PrintCounter();
}
}


这个例子中,ExampleClass 是一个包含两个静态方法和一个静态变量的类。IncrementCounter 方法用于增加 counter 变量的值,而 PrintCounter 方法用于打印当前 counter 的值。

在 Main 方法中,我们首先调用 IncrementCounter 方法来增加 counter 变量的值。然后,我们调用 PrintCounter 方法来打印当前 counter 的值。

注意,在 Main 方法中,我们使用类名来调用静态方法,而不是创建一个对象实例。这是因为静态方法属于类本身,而不是属于类的实例。

<br>

<h3>上面的例子中有静态方法中访问另一个静态方法嘛?请具体说明,我不懂</h3>

当在 Main 方法中调用 ExampleClass.IncrementCounter() 方法时,实际上是在调用 IncrementCounter 静态方法。而 IncrementCounter 静态方法又会增加 counter 静态变量的值。

当然,IncrementCounter 静态方法也可以通过调用 PrintCounter 静态方法来打印 counter 的值,例如:

public static void IncrementCounter() {
    counter++;
    PrintCounter();
}
在这种情况下,当调用 IncrementCounter 静态方法时,它将自动调用 PrintCounter 静态方法来打印 counter 的值。

总之,在 C# 中,静态方法可以访问静态成员变量和静态方法,因为它们都属于类本身,而不是类的实例。因此,在上面的示例中,我们可以在 IncrementCounter 静态方法中访问 counter 静态变量,以及在 PrintCounter 静态方法中打印 counter 的值。

标签:静态方法,C#,counter,PrintCounter,静态,实例,static,IncrementCounter
From: https://www.cnblogs.com/MinervaZhang/p/17226055.html

相关文章

  • openwrt luci 页面无法访问 问题排查
    说明:本文适用于某些使用了Argon主题的OpenWrt用户问题概况访问luci登录页,刷新半天后显示为白屏但是手机端测试,却又能访问故障排查1.抓包:发现问题使用......
  • R_2R电阻网络DAC原理分析
    DAC(DigitaltoAnalogConverter)是将数字信号变换为模拟信号的器件,在数字电路中得到广泛应用。数字电路中使用数字信号处理数据,可以使电路获得更高的抗干扰能力,同时数据......
  • Winform/CSharp中实现对Http接口地址、IP地址字符串格式/合法性校验
    场景Winform程序中,需要配置http接口地址以及mqtt协议的ip地址,需要对http接口地址以及ip地址字符串的格式进行合法性校验。  注:博客:https://blog.csdn.net/badao......
  • Linux centos下多个jar包文件开机自启脚本
    jar包都需要一个个输入指令,手动开启,非常繁琐。参考大佬的文档后,整理以下步骤:1.需要开机自启动的jar包列表如下:thinvent-auth.jarthinvent-gateway.jarthinvent-iot-boot.......
  • 数据湖选型指南|Hudi vs Iceberg 数据更新能力深度对比
    数据湖作为新一代大数据基础设施,近年来持续火热,许多前线的同学都在讨论数据湖应该怎么建,许多企业也都在构建或者计划构建自己的数据湖。基于此,自然引发了许多关于数据湖选......
  • SpringMVC-请求与响应
    SpringMVC-请求与响应4,请求与响应SpringMVC是web层的框架,主要的作用是接收请求、接收数据、响应结果请求映射路径请求参数日期类型参数传递响应json数据4.1设置......
  • Dcat-Admin改写ajax实现请求过滤同名参数
    //方案一Admin::script( <<<JS(function($){//备份jquery的ajax方法var_ajax=$.ajax;//重写jquery的ajax方法......
  • .NET6 给单元格设置背景色并导出Excel
    ///<summary>///给单元格设置背景色///</summary>///<returns></returns>publicasyncTask<IActionResult>CollectEx......
  • angular $implicit 作用
    在Angular中,"$implicit"是一个特殊的标识符,用于在模板中引用默认的上下文对象。它通常与结构指令(例如ngFor或ngIf)一起使用。当您在模板中使用结构指令时,您可以将一个值分......
  • 【CF1009F Dominant Indices】(长链剖分)
    原题链接题意给定一棵以\(1\)为根,\(n\)个节点的树。设\(d(u,x)\)为\(u\)子树中到\(u\)距离为\(x\)的节点数。对于每个点,求一个最小的\(k\),使得\(d(u,k)\)......