介绍
在C#中,static
关键字用于定义静态成员,这些成员属于类本身而不是类的实例。以下是一些使用static
的关键字的代码示例:
- 静态字段(变量)示例:
public class Counter
{
public static int TotalCount; // 静态字段
public static void Increment()
{
TotalCount++;
}
}
// 使用:
Counter.Increment();
Console.WriteLine(Counter.TotalCount); // 打印当前计数
在这个例子中,TotalCount
是一个静态字段,它不依赖于类的任何实例。你可以直接通过类名访问和修改它。
- 静态方法示例:
public class MathHelper
{
public static double CalculateSquare(double number)
{
return number * number;
}
}
// 使用:
double result = MathHelper.CalculateSquare(5);
Console.WriteLine(result); // 输出 25
这里的CalculateSquare
是一个静态方法,不需要创建MathHelper类的实例就能调用。
- 静态类示例:
- 整个类可以声明为静态,其中所有成员也必须是静态的。
public static class Constants
{
public const double PI = 3.14159265358979323846;
public static readonly string CompanyName = "Example Inc.";
}
// 使用:
Console.WriteLine(Constants.PI);
Console.WriteLine(Constants.CompanyName);
静态类不能被实例化,只能包含静态成员,并且通常用于存储常量或提供工具方法。
- 静态构造函数示例:
- 静态构造函数在类首次加载时自动执行,仅执行一次。
public class MyClass
{
public static int InitialValue;
static MyClass()
{
InitialValue = GenerateRandomNumber();
Console.WriteLine($"Initial value set to: {InitialValue}");
}
private static int GenerateRandomNumber()
{
Random random = new Random();
return random.Next(1, 100);
}
}
// 使用:
Console.WriteLine(MyClass.InitialValue);
当类MyClass首次被引用时,静态构造函数会被执行,设置并打印出初始值。
完整代码示例
using System;
namespace HelloworldCS
{
internal class Program
{
static void Main(string[] args)
{
// 使用:
Counter.Increment();
Console.WriteLine(Counter.TotalCount); // 打印当前计数
// 使用:
double result = MathHelper.CalculateSquare(5);
Console.WriteLine(result); // 输出 25
// 使用:
Console.WriteLine(Constants.PI);
Console.WriteLine(Constants.CompanyName);
// 使用:
Console.WriteLine(MyClass.InitialValue);
Console.ReadKey();
}
}
public class MyClass
{
public static int InitialValue;
static MyClass()
{
InitialValue = GenerateRandomNumber();
Console.WriteLine($"Initial value set to: {InitialValue}");
}
private static int GenerateRandomNumber()
{
Random random = new Random();
return random.Next(1, 100);
}
}
public static class Constants
{
public const double PI = 3.14159265358979323846;
public static readonly string CompanyName = "Example Inc.";
}
public class MathHelper
{
public static double CalculateSquare(double number)
{
return number * number;
}
}
public class Counter
{
public static int TotalCount; // 静态字段
public static void Increment()
{
TotalCount++;
}
}
}