Скажите, у меня есть следующий код:
class Parent
{
static string MyField = "ParentField";
public virtual string DoSomething()
{
return MyField;
}
}
class Child : Parent
{
static new string MyField = "ChildField";
}
Теперь я хочу сделать следующее:
Console.WriteLine(Parent.MyField);
Console.WriteLine(Child.MyField);
Эти работы, как и ожидалось, но я также хотел бы сделать это:
Child c = new Child();
Console.WriteLine(c.DoSomething());
Так как DoSomething () не определен для класса Child, возвращается MyField Родителя, но я хочу, чтобы MyField Child.
Итак, мой вопрос: есть ли способ, которым я могу это сделать?
ПРИМЕЧАНИЕ. Переопределение метода в классе Child является опцией, но, поскольку у меня будет много классов Child, наследующих от Parent, и метод должен делать то же самое во всех них, изменение чего-либо в этом методе приведет к много неприятностей.