C#语法回忆零散巩固(持续更新最新版)
散知识点回忆巩固,为本人开发过程中遇到的突然想不起来的知识点,进行汇总回顾,每个知识点都会有标题方便点击目录查。遇到什么就加什么,文章会越来越长,会持续上传最新版。
C# 类的静态成员
用关键字 static 进行修饰,修饰变量即为静态变量,可以通过类直接进行调用,不需要通过对应的实例(new对象来调用)。
using System;
namespace StaticVarApplication
{class StaticVar{public static int num;public void count(){num++;}public int getNum(){return num;}}class StaticTester{static void Main(string[] args){StaticVar s1 = new StaticVar();StaticVar s2 = new StaticVar();s1.count();s1.count();s1.count();s2.count();s2.count();s2.count(); Console.WriteLine("s1 的变量 num: {0}", s1.getNum());Console.WriteLine("s2 的变量 num: {0}", s2.getNum());Console.ReadKey();}}
}
上述代码运行后会得到以下结果:
s1 的变量 num: 6
s2 的变量 num: 6
为什么s1、s2两个对象,结果会是6,因为
当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。
关键字 static 也可以用来修饰函数(方法),同理,也无需实例化即可调用该函数(方法 )。
using System;namespace ConsoleApp
{class Program{static void Main(string[] args){int num = AddClass.Add(2, 3); //编译通过Console.WriteLine(num);}}class AddClass{public static int Add(int x,int y){return x + y;}}
}
using System;namespace ConsoleApp
{class Program{static void Main(string[] args){int num = Add(2, 3); //编译错误,即使改为Program.Add(2, 3);也无法通过编译Console.WriteLine(num);}public int Add(int x, int y){return x + y;}}
}
using System;namespace ConsoleApp
{class Program{static void Main(string[] args){Program self = new Program();int num = self.Add(2, 3); //编译通过Console.WriteLine(num);}public int Add(int x, int y){return x + y;}}
}
上图由Ai给出示例代码,帮助更好分析。