2014-11-17 3 views
-1

Делаю приложение для отслеживания сотрудников в фирме. Существуют разные классы сотрудников, которые все наследуют от абстрактного класса Employee. Я хочу определить статическую переменную в классе Employee, которая будет представлять идентификатор, который будет предоставлен каждому сотруднику после его инициализации, а затем будет увеличен. Так что мой вопрос заключается в том, как реализовать конструктор, например, для класса Manager который наследуется от Employee, не передавая ID в качестве параметра, но будет определен после достижения конструктора класса Employee?Наследование и конструкторы в C#

+0

Вы не можете иметь статическую переменную, которая является уникальным для каждого экземпляра класса. –

+0

Я знаю, но я хочу передать значение из статической переменной в новую нестатическую переменную в классе, который наследуется от Employee – user3791178

+5

Это домашнее задание, плохое понимание предмета и никакого примера кода, не ясно сведущим. –

ответ

0
class Employee 
{ 
    static int _empCount = 0; 
    static int GetNextEmployeeId() 
    { 
     _empCount++; 
     return _empCount; 
    } 

    public int EmployeeId { get; private set; } 

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

Хорошо, это проще, чем я себе представлял, спасибо – user3791178

+0

. Добро пожаловать на любой ответ, который вы найдете полезным ... – ShayD

0

имен Project1 {

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() { } 
} 

}

+0

Вы должны исправить форматирование своего кода. Добавьте 4 пробела перед каждой строкой. Удалить пустые строки – rtruszk

Смежные вопросы