【发布时间】:2012-02-06 22:11:27
【问题描述】:
我工作的承包商正在使用extension methods 在我们拥有的知名内部类上实现CRUD。我说使用普通的inheritance 比使用extension methods 更好,原因如下。
- 使用扩展方法会混淆、隐藏和混淆
CRUD方法的来源。 - 我假设
extension methods大量使用reflection(更慢)。
他的逻辑是,“它是编译好的,所以它很快。”也许我错了……但仅仅因为它被编译并不意味着它不使用反射,也不意味着它比普通继承更快。
所以我的问题是:
-
extension methods如何在后台工作? - 在您拥有的知名课程上使用
inheritance或extension methods更好吗?
【问题讨论】:
-
扩展方法只是另一个类中的公共静态方法,具有特定类型的第一个参数。 C# 提供了一些语法糖来允许调用其中一个方法,就好像它是该类型的成员一样。
-
请记住,当需要子类型关系时应使用继承,而不仅仅是代码重用。
标签: c# asp.net extension-methods