Pri*_*ERO 13 c# asp.net extension-methods
在我工作的承包商使用extension methods来实现CRUD上,我们拥有知名的内部类.我说最好使用正常结果inheritance,extension methods原因如下.
CRUD方法的来源.extension methods大量使用reflection(速度较慢).他的逻辑是,"它已编译,所以它很快." 也许我错了......但是因为它被编译并不意味着它不使用反射,也不意味着它比正常继承更快.
所以我的问题是:
extension methods在引擎盖下工作?inheritance或extension methods使用WELL-KNOWN类是否更好?Tho*_*que 19
扩展方法如何在引擎盖下工作?
它们只是静态方法; 编译器重写样来电myObject.MyExtensionMethod()来MyExtensionClass.MyExtensionMethod(myObject).
在你所拥有的WELL-KNOWN类中使用inheretance或extension方法更好吗?
这个问题没有单一的答案,这完全取决于背景.但通常扩展方法在这些情况下最有用:
IEnumerable<T>,Linq扩展方法)Hen*_*man 12
我假设扩展方法大量使用反射(速度较慢).
编号扩展方法在编译时解决,无需反映.
这否定了你的表现问题.
使用固有或扩展方法更好吗?
我不会说.使用存储库(DAL).一个实体应该是持久性不可知的(因此:没有来自执行CRUD的基础的继承)并且不假装涉及它不是(没有扩展).
你是对的,"使用扩展方法会混淆和混淆CRUD方法的来源",但继承不是解决方案.
| 归档时间: |
|
| 查看次数: |
2012 次 |
| 最近记录: |