在方法参数中接受一组有限的子类型

Mat*_*att 1 .net c# subtype .net-3.5

这是使用C#和.net 3.5

假设我有以下方法:

myMethod(myBaseClass mbc)
Run Code Online (Sandbox Code Playgroud)

在我的项目中,以下所有类都继承自myBaseClass.

ot1:myBaseClass
ot2:myBaseClass
ot3:myBaseClass
ot4:myBaseClass
Run Code Online (Sandbox Code Playgroud)

是否有任何技巧可以让我使用myTethod与ot1和ot3,但不是ot2和ot4,或者我基本上必须为我想要允许的每种类型重载?

Joe*_*oel 5

一个界面.将方法签名更改为

myMethod(ICastableAsMyBaseClass mbc)
Run Code Online (Sandbox Code Playgroud)

然后有ot1和ot3实现ICastableAsMyBaseClass.