首页 > 编程语言 >C# 静态类与成员

C# 静态类与成员

时间:2024-03-20 16:33:25浏览次数:19  
标签:C# 成员 静态 int 实例 static public

静态类 (Static Classes)

静态类是一种只包含静态成员(不能包含实例成员)的类。

主要特点:

  1. 不能被实例化。
  2. 只包含静态成员。
  3. 不能继承其他类,也不能被其他类继承。
 public static class MathUtils  
    {  
        // 静态字段,它们将在类加载时初始化  
        public static int Sum { get; private set; }  
        public static int Product { get; private set; }  
  
        // 静态构造函数,在类加载时执行  
        static MathUtils()  
        {  
            // 调用静态方法并初始化静态字段  
            Sum = Add(5, 3);  
            Product = Multiply(5, 3);  
        }  
        // 静态方法:加法  
        public static int Add(int a, int b)  
        {  
            return a + b;  
        }  
        // 静态方法:乘法  
        public static int Multiply(int a, int b)  
        {  
            return a * b;  
        }  
    }  
 public static void Main(string[] args)
        {
                        // 访问 MathUtils 类的静态字段  
                        int sum1 = MathUtils.Sum;  
                        int product1 = MathUtils.Product;  
  
                        // 输出结果  
                        Console.WriteLine("和: " + sum1); 
                        Console.WriteLine("积 " + product1);
         }  

静态成员 (Static Members)

静态成员包括静态字段、静态属性、静态方法和静态事件。因此,无论创建多少个类的实例,都只有一个静态成员的副本。

静态成员的主要特点:

  1. 静态成员属于类本身,而不是类的实例。
  2. 你可以通过类名直接访问静态成员,而不需要创建类的实例。
  3. 静态成员在第一次被引用时初始化,而不是在创建类的实例时初始化
public static  class MyCalculation
{
    // 静态类:下面所有的成员变量以及成员方法都需要声明成static
    public static int Num1 { get; set; }

    public static int Num2 { get; set; }

    public static int Plus()
    {
        return Num1 + Num2;
    }
}
static void Main(string[] args)
        {
            MyCalculation.Num1 = 10;
            MyCalculation.Num2 = 40;
            int result = MyCalculation.Plus();// 用一个结果来接收一下
            Console.WriteLine(result);
        }

静态构造函数 (Static Constructors)

静态构造函数用于初始化静态字段或执行只需在类加载时执行一次的操作。静态构造函数没有访问修饰符或参数,并且在一个类中只能有一个。当创建类的任何实例或引用任何静态成员之前,静态构造函数将自动执行。

static Animal()
    {
        Console.WriteLine("静态构造方法");
        
    }
 public Animal()
    {
        Console.WriteLine("实例构造方法");
    }
static void Main(string[] args)
        {
            Animal animal1 = new Animal();
        }

 

标签:C#,成员,静态,int,实例,static,public
From: https://blog.csdn.net/m0_56643625/article/details/136871344

相关文章

  • JavaScript 系列教程 II JavaScript 基础知识
    ......
  • JavaScript 模块化
    JavaScript模块化JavaScript的历史问题背景JavaScript在一开始诞生的时候只是用来网页脚本的开发,其实没有模块化和命名空间的概念。JS的模块化需求日益增长。幼年期:无模块化模块化思维的萌芽。需要在页面中加载不同的js:动画库,表单库,格式化工具多种js文件被......
  • 安装CUDA
    1.下载CUDA根据cmd的命令,看你的CUDA版本,找到匹配的安装CUDAToolkitArchive|NVIDIADeveloper点击进入点击exe文件安装即可精简安装会安装CUDA相关组件,同时也会将显卡驱动重新安装,如果不想重新安装显卡驱动,可以选择自定义安装,我选择自定义安装,如下图:安装完毕......
  • 【算法训练营】STL算法 Stack 栈的压入、弹出序列+最小栈
    Stack刷题1.最小栈2.栈的压入、弹出序列1.最小栈题目链接:最小栈题目描述解决思路创建一个辅助栈只保存最小的元素代码classMinStack{public:MinStack(){}voidpush(intval){//只要是压栈,先将元素保存到_elem中......
  • Leet code 974 和可被K整除的子数组
    解题思路 同余必定符合条件我们计算出从第一个位置到后面每个位置的sum如果给出一段数组nums为3 4 7 3  k=5第一个位置sum=3 第二位置sum=7 第三个位置sum=14 第四个位置sum=17这里7和17余数都为2 17-7=10 10%5=0   这里可以看出余数相同一定之......
  • linux 中shell脚本中遇到 Runtime error (func=(main), adr=22): Divide by zero
    在Linux中编写Shell脚本时,遇到“Runtimeerror(func=(main),adr=22):Dividebyzero”这样的错误通常是因为在脚本中进行了除以零的操作,类似于编程语言中的除零错误。要解决这个问题,您需要检查Shell脚本中涉及到除法运算的地方,确保分母不为零。下面是一个示例S......
  • javascript:void(0);用法及常见问题解析
    javascript:void(0);是一个常见的JavaScript代码片段,通常用于在HTML中作为超链接的href属性值或者事件处理函数的返回值。下面是关于它的用法和常见问题的解析:用法:作为超链接的href属性值:<ahref="javascript:void(0);">点击这里</a>这样做的作用是让点击链......
  • C语言练习
    1.输出方形。#include<stdio.h>intmain(){ charstar='*',space=''; inta,i,j; for(a=0;a<5;a++) { if(a==0||a==4) for(i=0;i<4;i++) putchar(star); else { putchar(star); for(j=0;j&......
  • 01-CSS基础(选择器)
    一、css基本语法1、CSS概述CSS指层叠样式表(CascadingStyleSheets)样式定义如何显示HTML元素样式通常存储在样式表中把样式添加到HTML4.0中,是为了解决内容与表现分离的问题外部样式表可以极大提高工作效率外部样式表通常存储在CSS文件中多个样式定义可层叠为一个......
  • Windows Server 2019 Oracle 19c Restore & Recovery
    RMAN>CONNECTTARGET/;RMAN>run{ SQL>shutdownimmediate; startupmountforce; startupmount; setuntiltime"to_date('2024-03-1905:36:58','yyyy-mm-ddhh24:mi:ss')"; restoredatabase; recoverdatabase; al......