在C#中,靜態變量屬于類級別的變量,它們在整個類的生命周期內存在,不依賴于類的實例化。當涉及到繼承時,靜態變量的處理可能會有一些特殊情況需要考慮。
class Parent
{
public static int num = 10;
}
class Child : Parent
{
public static int num = 20;
}
Console.WriteLine(Parent.num); // 輸出 10
Console.WriteLine(Child.num); // 輸出 20
class A
{
public static int numA = 10;
}
class B : A
{
public static int numB = 20;
}
Console.WriteLine(A.numA); // 輸出 10
Console.WriteLine(B.numB); // 輸出 20
class A
{
static A()
{
Console.WriteLine("A static constructor");
}
}
class B : A
{
static B()
{
Console.WriteLine("B static constructor");
}
}
// 輸出
// A static constructor
// B static constructor
總之,在處理靜態變量和繼承時,我們需要注意繼承和隱藏的關系、靜態變量的初始化順序以及靜態構造函數的執行順序,以確保程序能夠按照期望的方式運行。