C# Доступ к неявным операторам базового класса - PullRequest
1 голос
/ 12 апреля 2020

У меня есть следующие настройки: Entity выводится из MonoBehaviour. MonoBehaviour реализует имплицитное преобразование в bool. Теперь, если я реализую неявное преобразование в bool в Entity, оно переопределяет одно из MonoBehaviour. Если я теперь хочу получить доступ как к старому, так и к новому преобразованию, я должен выполнить приведение обратно к базовому классу

public class Entity : MonoBehaviour 
{ 
    private float CurrentHealthPoints { get; set; }

    public static implicit operator bool(Entity entity) 
        => (MonoBehaviour)entity && entity.CurrentHealthPoints > 0;
}

Теперь мой вопрос, есть ли другой метод без преобразования в базовый класс? ? Я пытался использовать ключевое слово base, но не смог заставить его работать.

1 Ответ

1 голос
/ 12 апреля 2020

Насколько я знаю, если в используемом типе не используется контравариантность , явное приведение является неизбежным. Вы также можете использовать ссылку .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...