创建新对象后修改静态变量数据

时间:2015-12-06 14:34:14

标签: c# static static-variables

我创建了一个静态变量,并在创建多个对象后尝试访问其内容,但我得不到相同的值。

class Emp
{
    int id;
    static int empID;

    public Emp()
    { 
        empID = id++;        
    }
    public static int geID()
    {
        return empID;
    }

    public static void setEmpID(int value)
    {
        empID = value;
    }
}

class Program
{
    static int Main(string[] args)
    {
        Emp.setEmpID(76);
        Emp e1 = new Emp();
        Emp e2 = new Emp();
        Console.WriteLine(Emp.geID());
        return 0;        
    }
}

为什么我得到' 0'在控制台,而我期待76在控制台。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在构造函数中,将empID设置为id(id = 0),并将AFTER加1为id。 我想你需要改变你的代码:

class Emp
{
    int id;
    static int empID;

    public Emp()
    { 
        id = empID++;
    }
    public static int geID()
    {
        return empID;
    }

    public static void setEmpID(int value)
    {
        empID = value;
    }
}