【发布时间】:2009-02-27 19:57:52
【问题描述】:
对于我正在编写的应用程序,我希望具有极高的可扩展性,扩展方法似乎可以满足我的需求,并且能够在没有实例的情况下调用它们,这也是我需要的。
我记得读过静态方法比实例方法更快,但没有获得 GC 的优势。这是正确的吗?
除非我通过设计而不是速度找到更好的替代方案,否则我不太可能改变我的设计。但仍然想了解更多信息,我想知道速度、GC 等方面的差异。
编辑:谢谢。更多信息:假设我们有一个 Person 类:
class Person
可以有一个实例距离方法,比如:
this.Distance (Person p)
这很好,但是这并没有让我能够计算 2 个点(比如 Point3)之间的距离,而无需创建 Person 类的实例。
我想做的是这样的:
class Person (no Distance methods)
但距离的扩展方法:
Distance (this Person, Person)
Distance (this Point3, Point3)
这样我都可以做到:
myPerson.Distance (yourPerson)
和
Extensions.Distance (pointA, pointB)
EDIT2:@Jon,是的,我认为这就是(不要获得 GC 的优势)的意思,但我不知何故认为静态方法会造成这种负担/开销。
【问题讨论】:
标签: c# .net garbage-collection clr methods