这是使用C#和.net 3.5
假设我有以下方法:
myMethod(myBaseClass mbc)
在我的项目中,以下所有类都继承自myBaseClass。
ot1:myBaseClass
ot2:myBaseClass
ot3:myBaseClass
ot4:myBaseClass
是否有任何技巧可以让我使用myTethod和ot1和ot3但不是ot2和ot4,或者我基本上必须为我想要允许的每种类型重载?
答案 0 :(得分:5)
界面。将方法签名更改为
myMethod(ICastableAsMyBaseClass mbc)
然后让ot1和ot3实现ICastableAsMyBaseClass
。
答案 1 :(得分:2)
你可以在运行时检查mbc的类,但显然这不会阻止你在编译时用错误的时间调用该方法。
如果你想要编译时类型检查,你需要为你想要允许的每种类型重载方法。