И базовый класс, и производный класс имеют метод с одинаковым именем (SimpleSelectByInnerText
). Компилятор говорит вам, что метод в производном классе «скрывает» метод в базовом классе (вы не переопределяете его, потому что только методы virtual
или abstract
могут быть переопределены).
Чтобы избавиться от этого предупреждения, вы можете использовать ключевое слово new
, которое сообщает компилятору, что вы намереваетесь «скрыть» базовый метод:
public class CheckBoxDropListWithInputField : DropListActions
{
public new void SimpleSelectByInnerText(string text, bool close)
{ // ^ new keyword here before the return type
}
}
В качестве альтернативы, вы можете использовать override
и пометьте метод в базовом классе как virtual
:
public class DropListActions
{
public virtual void SimpleSelectByInnerText(string text, bool close)
{
}
}
public class CheckBoxDropListWithInputField : DropListActions
{
public override void SimpleSelectByInnerText(string text, bool close)
{
}
}
См. В чем разница между переопределением и новым? от Jon Skeet и Предупреждение компилятора (уровень 2) CS0108 для получения дополнительной информации.