【发布时间】:2011-01-20 04:19:28
【问题描述】:
我有一个IList<Delegate>,其中包含一些Func<bool>s 和一些Predicate<T>s,其中T 各不相同。稍后我需要整理出这些项目中的哪些是Predicate<T>s,但不想关闭稍后将其他Delegate类型添加到列表中的大门,所以我不想通过@识别对象来做到这一点987654327@.
Predicate<T> 下面的最高抽象是MulticastDelegate,这似乎没什么用(在Predicate<T> 下需要一个非泛型的Predicate 类型),并且鉴于其他泛型,识别泛型参数的存在也是无用的Delegates 可能出现在列表中。
我唯一考虑的另一件事是检查Type 的Name。对我来说,字符串比较几乎是一种味道,但也许这是最好的和/或唯一的方法——你告诉我。
在不知道T 的类型的情况下确定object 是任何Predicate<T> 的最佳方法是什么?
【问题讨论】:
标签: c# .net reflection delegates types