当我以任何方式使用扩展方法时,我是否会遇到性能问题?
只是一个例子:
假设我在类型字符串上有100个扩展方法,并且有一个具有50个字符串属性的业务对象。 现在我创建了这个业务对象的集合,可能有500个项目?
字符串上的这些扩展方法对RAM,CPU,......有什么影响吗?
我非常喜欢扩展方法,但我想知道它的用法是否存在限制。
答案 0 :(得分:13)
不,你不会。
扩展方法只是普通的静态方法,带有一些语法糖。尽可能多地使用它们:)
答案 1 :(得分:5)
你可能会在IDE中降低智能感知速度 - 并且可能使智能感知列表有点笨拙,但它对代码本身的执行不会对任何其他静态方法产生任何影响。
答案 2 :(得分:3)
扩展方法是静态类的一部分,它是一个语法糖,因为模拟一些静态方法是其他类的实例方法。
总之,这里没有性能损失。它与ExtensionMethods.YourExtensionMethod(objectToAddMethod)
和objectToAddMethod.YourExtensionMethod()
相同。
答案 3 :(得分:1)
我认为这是重复的:
请参阅:Is there a performance hit for creating Extension methods that operate off the object type?
那里的答案很好地解释了这一点!