C# C语言中的继承和构造函数#

C# C语言中的继承和构造函数#,c#,inheritance,C#,Inheritance,我正在申请跟踪一家公司的员工。有不同的Employee类,它们都继承自抽象类Employee。我想在Employee类中定义一个静态变量,该变量将表示id,该id将在初始化后提供给每个员工,然后递增。因此我的问题是,如何实现构造函数,例如从Employee继承的类管理器,而不将id作为参数传递,但是一旦它到达类Employee?namespace Project1的构造函数,就会确定 class Employee { static int _empCount = 0; stati

我正在申请跟踪一家公司的员工。有不同的Employee类,它们都继承自抽象类Employee。我想在Employee类中定义一个静态变量,该变量将表示id,该id将在初始化后提供给每个员工,然后递增。因此我的问题是,如何实现构造函数,例如从Employee继承的类管理器,而不将id作为参数传递,但是一旦它到达类Employee?namespace Project1的构造函数,就会确定
class Employee
{
    static int _empCount = 0;
    static int GetNextEmployeeId()
    {
        _empCount++;
        return _empCount;
    }

    public int EmployeeId { get; private set; }

    public Employee()
    {
        EmployeeId = GetNextEmployeeId();
    }
}
{


}

静态变量不能在类的每个实例中都是唯一的。我知道,但我想将静态变量的值传递给从Employee继承的类中的新非静态变量。这是家庭作业,显示对主题的理解很差,没有示例代码,也不清楚。另外,以这种方式分配ID是一场即将发生的灾难。你无法保证员工总是以相同的顺序被收回。很可能他们每次都会有不同的ID好吧,这比我想象的要简单,谢谢你,你应该更正代码的格式。在每行之前添加4个空格。删除空行
class Employee
{

    static int lastId;

    protected int id;

    public Employee()
    {
        this.id = lastId + 1;
        lastId = this.id;
    }


}

class Manager : Employee
{
    public Manager() : base() { }
}

class Accountant : Employee
{
    public Accountant() : base() { }
}