一、static关键字
在 C# 中,static
关键字用于声明静态成员,如静态字段、静态方法、静态构造函数等。以下是 static
关键字的主要用途和特点:
- 静态字段(Static Fields):使用
static
关键字声明的字段是静态字段,它们属于类而不是类的实例。所有该类的实例将共享同一个静态字段,而不是每个实例拥有独立的字段副本。
public class MyClass {
public static int staticField;
}
- 静态方法(Static Methods):静态方法属于类本身,可以直接通过类名访问,无需实例化对象。静态方法不能访问非静态成员,因为它们不依赖于对象的存在。
public class MyClass {
public static void StaticMethod() {
// 静态方法的实现
}
}
- 静态构造函数(Static Constructor):使用
static
关键字声明的构造函数是静态构造函数,它用于初始化静态成员。静态构造函数在类首次被使用时自动调用,并且只会被调用一次。
public class MyClass {
static MyClass() {
// 静态构造函数的初始化逻辑
}
}
- 静态类(Static Classes):使用
static
关键字修饰的类是静态类,它们只能包含静态成员,不能被实例化。静态类通常用于封装工具类或扩展方法。
public static class MathUtil {
public static int Add(int a, int b) {
return a + b;
}
}
总的来说,static
关键字用于定义与特定对象实例无关的成员,它们属于类本身而不是类的实例。静态成员在整个应用程序中只有一个实例,可以被所有对象共享,提供了一种更加灵活和高效的方式来实现特定功能。
二、const关键字
在 C# 中,const
关键字用于声明常量,即在编译时就确定了值,并且在整个程序执行过程中不可更改。在C#中没有全局常量,每个常量都必须声明在类内,且不能声明在方法中。
成员常量表现得像静态值,对类的每一个实例都是“可见的”,而且即使没有类的实例也是可以使用的。与真正静态量不同,常量没有自己的存储位置,而是在编译时被编译器替换
注意:虽然常量成员表现得像一个静态量,但不能将常量声明为static。
- 常量声明:使用
const
关键字声明的常量必须在声明时进行初始化,并且初始化后的值在程序执行过程中不能修改。
public class Constants
{