我已经知道可以将接口作为参数传递给方法。这样可以只指定方法所需的对象的相关成员。我想做的是能够将接口类型作为参数传递。
假设我声明了几个接口,并且这些接口在一系列对象上实现得不均匀,这些对象都形成一个单独的列表/集合。我是否可以编写一个帮助方法,它将同时接受来自列表的对象和一个接口类型作为参数,并检查对象是否实现了该接口?以下代码显然很糟糕,但它说明了我想要做的事情:
private bool CheckType(object o, interface intrfce)
{
try
{
object x = (object)(intrfce)o;
return true;
}
catch (InvalidCastException e)
{
return false
}
}
目前,我只是计划为接口设置一个枚举,并要求所有类公开实现的接口数组/列表。然后,我可以检查枚举列表以查看它们具有哪些相关接口(我只对我创建的接口感兴趣 - 我不需要返回 IEnumerable
或 ICloneable
等)。或者,我可以为每个接口编写帮助方法。我只是想知道是否有更优雅的方法来做到这一点?