![]() |
1
60
给定类型
如果声明来自基类型,则计算结果为false。
注意,由于这是测试声明,而不是真正的实现,因此
将
如果返回真
|
![]() |
2
20
正如@ciprianbortos所指出的,接受的答案并不完整,如果按原样使用,将导致代码中出现严重的错误。
他的评论提供了神奇的解决方案
或者,作为扩展方法提供给
|
![]() |
3
16
我无法得到 Ken Beckett's proposed solution 工作。我的决定是:
中有个测试 the gist . |
![]() |
4
6
一个简单的解决方案也适用于受保护的成员和属性,如下所示:
这是我的回答 here ,这反过来也提到了这个问题。 |
![]() |
5
2
在一些非平凡的情况下也能工作的方法:
还有一些难看的测试:
|
![]() |
6
2
根据
this answer
还可以有一种简单的方法来检查是否重写了虚方法,而不必使用
以及另一种扩展方法
你可以打电话
检查是否
就我所测试的而言,它似乎工作得很好(在我的机器上)。 |
![]() |
7
0
有一种更好、更安全、更快的方法。 如果类实例的使用寿命很长,并且必须多次执行isoverriden检查,则此技术是有意义的。 为了解决这个问题,我们可以使用缓存和C委托,比反射快得多!
当您将此程序作为控制台应用程序运行时,它将打印:
使用Visual Studio 2010,C 4.0进行测试。 应该也适用于以前的版本,但在C小于3.0的版本上,由于对新版本中的代理进行了优化,因此速度可能会慢一些,对此的测试将不胜感激:) 但是,它仍然比使用反射更快! |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |