我有以下设置:Entity
是从MonoBehaviour
派生的。MonoBehavior实现了对布尔的简单转换。现在,如果我在Entity中实现了对bool的隐式转换,它将覆盖MonoBehavior中的转换。如果我现在想访问旧的和新的转换,我必须执行基类的强制转换
public class Entity : MonoBehaviour
{
private float CurrentHealthPoints { get; set; }
public static implicit operator bool(Entity entity)
=> (MonoBehaviour)entity && entity.CurrentHealthPoints > 0;
}
现在我的问题是,有没有一种不同的方法不必转换到基类?我尝试使用base
关键字,但无法使其发挥作用。
据我所知,除非所使用的类型使用逆变,否则显式强制转换是不可避免的。你也可以使用这个链接。