Rozważmy pracownika, Manager, a zajęcia Asystent:.NET Dziedziczenie: stłumić właściwość z klasy bazowej
public class Emp
{
public string Name { get; set; }
public Manager Manager { get; set; }
public Assistant Assistant { get; set; }
}
public class Manager : Emp
{
}
public class Assistant : Emp
{
}
Celem jest, aby nie pozwolić na kawałek kodu, aby uzyskać dostęp do właściwości tak:
var foo = new Manager();
var elmo = new Emp();
elmo.Manager = foo;
elmo.Manager.Manager = new Manager();
//how to disallow access to Manager.Manager ?
Ponieważ Manager
dziedziczy po Emp
, ma właściwość .Manager
i .Assistant
.
Pytanie
Czy istnieją jakieś modyfikatory w realizacji spadków .NET do zlikwidowania .Manager
i .Assistant
właściwości?
Aktualizacja
Dziękujemy za wielkie odpowiedzi, każdego. Miałem nadzieję, że uproszczenie i pomysł Emp/Mgr przejdzie przez to pytanie. Oczywiste jest, że dziedziczenie w tym przykładzie powinno zostać przeniesione do innej wspólnoty (coś w rodzaju Person
, gdzie klasy będą się dzielić imionami, datami urodzenia itp.) Twój wkład jest bardzo cenny!
Pachnie jak kwestia projektowania dla mnie. Podczas gdy Menedżerowie mogą zgłaszać się do innego menedżera, Asystenci prawdopodobnie nie mają asystenta. Być może podstawą powinna być osoba ... – Walter