Создал 2 класса. От одного наследовал другой. Вот код:
class Program
{
static void Main(string[] args)
{
Manager man = new Manager("", "", 0, 0);
}
}
class Employee
{
public string Surname { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public Employee(string sName, string MyName, int MyAge)
{
Surname = sName;
Name = MyName;
Age = MyAge;
}
}
class Manager : Employee
{
public int Pay { get; set; }
public Manager(string s, string n, int a, int p)
{
Surname = s;
Name = n;
Age = a;
Pay = p;
}
}
В унаследованном классе заполняю напрямую свойства из первого. Но почему то ругается на конструктор класса Manager.
Error CS7036 There is no argument given that corresponds to the required formal parameter 'sName' of 'Employee.Employee(string, string, int)'
Что то не пойму что не так?
В классе Employee у вас нет конструктора без параметров, так что вы должны явно указать конструктор Employee, соответствующий конструктору Manager, и передать в него параметры. Создать объект класса Employee без вызова конструктора (и, соответственно, без передачи в него параметров) не получится:
public Manager(string s, string n, int a, int p)
: base(s, n, a) // будет вызван Employee(string, string, int)
{
// все свойства, кроме Pay, инициалируются в конструкторе базового типа
Pay = p;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Академическая задача, есть модель People и временный репозиторий наполненный фейковыми даннымиПри передачи в браузер я сериализую в JSON модель...