Почему C# называет эту перегрузку вместо более конкретной (может быть, переопределить)? [дублировать]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему C# называет эту перегрузку вместо более конкретной (может быть, переопределить)? [дублировать]

Сообщение Anonymous »

У меня есть этот код, родительский класс имеет абстрактный фильтр Bool (EntityComponent Entity) Но в этом классе я предпочитаю реализовать фильтр Bool (базовый объект) Потому что другие также вызывают последнее (последнее также звонят (последнее.

Код: Выделить всё

EntityComponent
- базовый ). Чтобы предотвратить StackOverflow, я подчиняю его в базовый , чтобы можно было вызвать правильную перегрузку:

Код: Выделить всё

protected override bool Filter(EntityComponent entity) => Filter((BaseComponent)entity);

protected bool Filter(BaseComponent entity)
{
return
(AllowBeavers && entity.GetComponentFast())
|| (AllowBots && entity.GetComponentFast());
}
Теперь я удивлен, что VS просит меня удалить актерский состав, и он даже относится к правильному методу при удалении такого состава:
> Filter (Basecomponent) выбирается, когда EntityComponent , несомненно, более подробно? Как это не сделает рекурсию без актера?

Подробнее здесь: https://stackoverflow.com/questions/794 ... aybe-overr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»