1
4
如果这些类有公共操作,听起来它们应该继承自同一个基类或实现同一个接口,对吗?如果是,则使用该接口/基作为T的约束
然后您将拥有对接口或基类提供的共享成员的编译时访问权。 |
2
0
你可以采取行动
然后使用Action委托(在本例中通过lambda),当调用activate时将知道属性:
|
3
0
最好的解决方案是给对象一个公共的基类型,并将类型参数T约束为该类型。然后,您可以在编译时访问公共基类型的方法或属性:
或
如果这是不可能的,那么如果没有公共基类型,您所能做的就是反射要查找和调用您感兴趣的属性的对象:
我要补充的是,反射比较昂贵,而且您也会丢失编译时验证。但在这种情况下很方便。 您可以通过调用以下命令获取用于处理方法的MethodInfo对象:
|