当使用这样的“ using”语句时:
using (Global.Instance.BusyLifeTrackerStack.GetNewLifeTracker())
{
...
代替
using (var lt = Global.Instance.BusyLifeTrackerStack.GetNewLifeTracker())
{
...
“ using”语句是否会保留对返回对象的引用,以确保不会更早地对其进行垃圾回收?...或者是否没有为其声明任何显式变量(第一个示例代码)?
第二个示例代码显然可以,但是第一个示例???
任何文档和/或对信息的引用将不胜感激。
要回答问题的文档和参考部分:
using语句
Dispose
以正确的方式调用对象上的方法,并且(如前所述,当您使用它时)它还会导致对象本身在Dispose
被调用后就超出范围。在该using
块内,该对象是只读的,无法修改或重新分配。
就第一个代码块的语法而言,C#标准的语法如下:
using_statement : 'using' '(' resource_acquisition ')' embedded_statement ; resource_acquisition : local_variable_declaration | expression ;
在这里,您会注意到它resource_acquisition
可以是局部变量声明或表达式,这是您的第一个代码块使用的表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句