using语句是否保留对其接收的对象的引用?

埃里克·厄勒

当使用这样的“ using”语句时:

  using (Global.Instance.BusyLifeTrackerStack.GetNewLifeTracker())
  {
    ...

代替

  using (var lt = Global.Instance.BusyLifeTrackerStack.GetNewLifeTracker())
  {
    ...

“ using”语句是否会保留对返回对象的引用,以确保不会更早地对其进行垃圾回收?...或者是否没有为其声明任何显式变量(第一个示例代码)?

第二个示例代码显然可以,但是第一个示例???

任何文档和/或对信息的引用将不胜感激。

异端猴子

要回答问题的文档和参考部分:

声明文档using指出:

using语句Dispose以正确的方式调用对象上的方法,并且(如前所述,当您使用它时)它还会导致对象本身在Dispose被调用后就超出范围在该using块内,该对象是只读的,无法修改或重新分配。

就第一个代码块的语法而言,C#标准的语法如下:

using_statement
    : 'using' '(' resource_acquisition ')' embedded_statement
    ;

resource_acquisition
    : local_variable_declaration
    | expression
    ;

在这里,您会注意到它resource_acquisition可以是局部变量声明或表达式,这是您的第一个代码块使用的表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

枚举是否保留其关联对象?

put_money是否按值或引用保留其参数?

是否可以从其自己的处理程序对象引用代理?

c ++中的可选引用是否保留对象寿命?

保留对核心数据对象的引用是否不好?

C#-强制转换是否保留对原始对象的引用?

保留的片段是否保留其视图?

保留引用并删除引用对象的SQL实践

接收其类对象的python类方法

ColdFusion cfcase语句并引用其变量?

在保留对象引用的同时替换对象

分解嵌套对象,但保留对嵌套对象的引用

匿名内部类在访问其原语等时是否始终捕获对“ this”(外部)对象的引用?

未引用的对象是否有可能保留在内存中并调用目标操作?

设置为JavaScript对象的属性名称时,是否需要引用保留字?

保留其基类不是@Entity的对象

是否可以隐藏边框,保留其宽度?

存储从函数接收的对象方法的引用

引用对象而不在std :: vector中为其创建变量的情况下,是否会创建该对象的新实例?

从其ID获取对线程对象的引用

从其声明中引用 javascript 对象

SQLAlchemy:对象列表,如果删除则保留引用

保留对超出范围对象的方法的引用

是否可以避免保留对听众的引用?

Java Iterator是否保留对链表元素的引用?

引用对象时将对象保留为对象

是否有可能构建一个迭代器来生成对其在next()中修改的对象的引用?

是否可以在构造函数的初始化列表中初始化新对象并对其进行引用?

RValue引用分配给另一个指针后,是否会删除其绑定(非指针)对象?