Насколько я знаю, невозможно сделать следующее в С# 2.0
public class Father
{
public virtual Father SomePropertyName
{
get
{
return this;
}
}
}
public class Child : Father
{
public override Child SomePropertyName
{
get
{
return this;
}
}
}
Я обход проблемы, создав свойство в производном классе как "новое", но, конечно, это не полиморфно.
public new Child SomePropertyName
Есть ли решение в 2.0? Как насчет каких-либо функций в 3.5, которые касаются этого вопроса?