C# 静态变量
时间:2010-10-27 来源:小鱼儿-fly
static变量在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。
静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。
class StaticTest
{
static int x = 0;
int y = 0;
public void SetX(int a)
{
x = a;
}
public void SetY(int a)
{
y = a;
}
public void Print()
{
Console.WriteLine("x = {0} y = {1}", x, y);
}
static void Main(string[] args)
{
StaticTest st = new StaticTest();
StaticTest st1 = new StaticTest();
st.SetX(10); //将10赋给x;
st.SetY(10); //将10赋给y;
st.Print(); //显示:x=10 y=10
st1.SetX(20); //将20赋给x
st1.SetY(20); //将20赋给x
st1.Print(); //显示:x=20 y=20
st.Print(); //由于x是静态变量,所以在此调用第一次初始化实例st时,静态变量已经变为20, 输出:x=20 y=10
st.SetX(30);
st.SetY(30);
st.Print(); //由于x是静态变量,所以在此调用初始化实例st时,静态变量已经变为30, 输出:x=30 y=30
st1.Print(); //由于x是静态变量,所以在此调用st1实例时,静态变量已经变为30, 输出:x=30 y=20
}
}