2010-01-13 38 views

回答

5

假设你将它与局部变量引用进行比较,没有任何区别;两者都会发出完全相同的IL。 (至少在发布模式下)

但是,如果您将它与属性或索引器的重复调用进行比较,则With会更快一些,如果您将其与方法的重复调用进行比较,它可能会更快。 (该With关键字将创建一个局部变量并将其分配给你With倒是对象,因此该方法只会而不是一次的呼吁每一行)

+1

+1。虽然我认为如果您在使用With的特定代码块中进行测量并发现严重的性能瓶颈,那么您应该只担心这些性能差异。 “过早微观优化是所有邪恶的根源” – MarkJ 2010-01-13 13:21:07

+0

@MarkJ我正在谈论一个巨大的批量操作(1000000+)条目 – Shimmy 2011-10-13 18:06:07

+0

我不知道你可以用'With'方法。凉! – toddmo 2015-02-06 15:18:29

2

没有运行时性能成本。这只是“语法糖”,使您的代码看起来更漂亮。

0
sub xyz (ByRef param as MyObj) 

'Local ref, same as with 

dim o2 as YourObject = param.YourObject 

o2.callSomething() 


'Bad performance 

param.YourObject.callSomething() 

end sub 
+1

另请提供一些关于它如何回答问题的答案。 – brimborium 2012-11-09 15:23:56