我想强制一个子类中的函数是抽象父类中的类的类型。例如:
abstract class Animal {
public abstract void Add(Animal animal);
}
class Cat: Animal {
public override void Add(Cat cat) {
//Do cat things
}
}
class Dog: Animal {
//This should not be allowed
public override void Add(Animal dog) {
//Do dog things
}
}
在这里,我们看到Cat
类型的对象可以传递给Dog.Add
。有没有办法强制函数采用类型Dog
?
我相信有一些方法可以在运行时进行检查,但如果可能的话,我宁愿有编译错误。
答案 0 :(得分:1)
您可以声明一个接口并使用带有 where 约束的泛型。
=IF(H13>0,IF(H14>0,IF(H15>0,IF(H16>0,IF(H17>0,IF(H18>0,IF(H19>0,"Yes","No"),"No"),"No"),"No"),"No"),"No"),"No")