Member 11149766 Ответов: 1

Что касается виртуального метода в c#.net


Я получаю ошибку в protected override int RowCount()
{ } как будто не найдено подходящего метода для переопределения.

Что я уже пробовал:

У меня есть два проекта в sln
В Х по проекту --&ГТ; класс Х1:метод как.
охраняемых переопределить интервал количество строк()
{
логика......
обратный отсчет;
}

В проекте Y -> класс равен Y1

защищенный виртуальный межд строк()
{
возврат -1;
}

Частный недействительными ХХ()
{
Количество = Количество Строк();
}


Я также добавил ссылки,пожалуйста, помогите мне, как избежать ошибки.

1 Ответов

Рейтинг:
10

OriginalGriff

Вы можете переопределять методы только в классах, производных от оригинала: поэтому, если X1 не является производным от Y1, вы не можете переопределить его методы.

public class X1 : Y1
    {
    protected override int RowCount()
        {
        return Count;
        }
    }

public class Y1
    {
    protected int Count = 666;
    protected virtual int RowCount()
        {
        return -1;
        }
    }
Будет работать.


Dave Kreskowiak

Я понятия не имею, почему ты получил 1 голос. Это вполне разумный ответ.