2

在 vb.net 中使用“With”关键字而不是一遍又一遍地重用实例名称会对性能产生什么影响?

4

3 回答 3

6

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

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

于 2010-01-13T00:52:42.427 回答
2

没有运行时性能成本。它只是让你的代码看起来更漂亮的“语法糖”。

于 2010-01-13T00:51:01.367 回答
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
于 2011-10-13T08:59:11.213 回答