|
|
1
7
因为比起调试代码,我更喜欢调试数据,所以我会这样做,特别是当代码必须处理所有
这会抛出一个
还有一点是(假设映射是预构建的)使用字典将类型映射到方法比遍历线性类型列表更快,这本质上就是使用一组
|
|
|
2
6
您可以尝试使用
一些示例代码:
|
|
|
3
4
更新
:我决定对这里讨论的不同方法进行基准测试(
如预期,使用
然而
,使用
然而,更深的一点是,这次试验的试验次数是10次。
百万,
这意味着你使用哪种方法真的没什么区别。使用
|
|
|
4
3
您可以尝试使用
如果你能控制这些类,我建议使用访问者模式的变体(aka Double Despatch 为了更清晰地恢复类型信息,但由于没有,这是一种相对简单的方法。
更新
:使用变量存储
更新2
:当C 4可用时,您可以使用
这将起作用,因为动态对象上的方法分派使用与普通方法重写相同的规则,但在运行时而不是编译时进行计算。 在这种情况下,动态语言运行库(DLR)将执行与本文(和其他答案)中所示代码大致相同的技巧,但同时增加了性能缓存。 |
|
|
5
1
这是一种不需要任何尝试捕获的正确方法。
|
|
|
6
0
你可以这样做:
|