可能是重复的问题:
扩展方法性能
当我在任何情况下过多地使用扩展方法时,我会面临性能问题吗?
只是一个例子:
假设我在字符串类型上有100个扩展方法,并且一个业务对象有50个字符串属性。 现在我创建了一个这个业务对象的集合,可能有500个项目?
这些字符串上的扩展方法对RAM、CPU等有任何影响吗?!
我真的很喜欢扩展方法,但我想知道它的使用是否有限制。
可能是重复的问题:
扩展方法性能
当我在任何情况下过多地使用扩展方法时,我会面临性能问题吗?
只是一个例子:
假设我在字符串类型上有100个扩展方法,并且一个业务对象有50个字符串属性。 现在我创建了一个这个业务对象的集合,可能有500个项目?
这些字符串上的扩展方法对RAM、CPU等有任何影响吗?!
我真的很喜欢扩展方法,但我想知道它的使用是否有限制。
不会的。
扩展方法只是带有一些语法糖的普通静态方法。可以随意使用它们 :)
您可能会在IDE中减缓智能感知的速度 - 并且可能使智能感知列表有些难以处理,但它不会对代码本身的执行产生任何影响,与任何其他静态方法一样。
扩展方法是静态类的一部分,它是一种语法糖,因为模拟了某些静态方法是其他类的实例方法。
总之,在这里没有性能惩罚。它是相同的ExtensionMethods.YourExtensionMethod(objectToAddMethod)
和objectToAddMethod.YourExtensionMethod()
。