![]() |
1
4
如果这些类有公共操作,听起来它们应该继承自同一个基类或实现同一个接口,对吗?如果是,则使用该接口/基作为T的约束
然后您将拥有对接口或基类提供的共享成员的编译时访问权。 |
![]() |
2
0
你可以采取行动
然后使用Action委托(在本例中通过lambda),当调用activate时将知道属性:
|
![]() |
3
0
最好的解决方案是给对象一个公共的基类型,并将类型参数T约束为该类型。然后,您可以在编译时访问公共基类型的方法或属性:
或
如果这是不可能的,那么如果没有公共基类型,您所能做的就是反射要查找和调用您感兴趣的属性的对象:
我要补充的是,反射比较昂贵,而且您也会丢失编译时验证。但在这种情况下很方便。 您可以通过调用以下命令获取用于处理方法的MethodInfo对象:
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |