Witam myślę, że temat nazwałem trafnie do problemu.
Mianowocie jako podsumowanie rozdziału z książki postanowaiłem napisać coś co zawiera wszystkie w nim omówione zagadniania.
I mam tutaj problem.
- Mam metode PAYY która przyjmuje jako agrgument obiekt klasy i w zależności od niego ustala wartość zmiennej operacją "is".
protected void Payy(Employee emp)
{
if (emp is Employees.Manger)
{
Pay = PackageLevel.GetHashCode() + Płaca.Manger.GetHashCode();
}
else if (emp is Employees.SalesPerson)
{
Pay = PackageLevel.GetHashCode() + Płaca.SalesPerson.GetHashCode();
}
}
To niby działa dobrze. Ale przy próbie przesłania obiektu pojawia się błąd.
// Konstruktor klasy bazowej
public Employee(string name, string ssn, int age, int id, Package.Package.PackageLevel package,Employee emp)
{
Name = name;
SSN = ssn;
Age = age;
ID = id;
PackageLevel = package;
Payy(emp);
}
// Konstruktor klasy potomnej
public Manger(string name, string ssn, int age, int id, int options, Package.Package.PackageLevel package,Employee emp)
: base(name, ssn, age, id, package,emp)
A tutaj tworzenie nowych obiektów.
Object[] MyEmployess = { new Employees.Manger(),
new Employees.Manger("Paweł ","00-00-00",17,0,7,Package.Package.PackageLevel.Platinium,Employees.Manger),
new Employees.SalesPerson(),
new Employees.SalesPerson("Robert","11-11-11",17,1,12,Package.Package.PackageLevel.Gold,Employees.SalesPerson) };
I w ostatnich argumentach coś jest nie tak.
Moje pytanie:
Dlaczego nie mogę tak przesłać tego?
Jak mogę sprawdzić w metodzie Payy czy aktualny obiekt jest którymś z potomych?
Próbowałem tak:
this.GetType() jak i samo GetType()
Problem pewnie banalny i czegoś nie zrozumiałem. Dopiero sie uczę;p