C#中使用块内的这个关键字

时间:2011-09-29 01:53:21

标签: c# using-statement

this在C#中的using块内引用了什么?

2 个答案:

答案 0 :(得分:12)

this块内的

usingthis块之外的using相同:该类的当前实例。

using块应该与实现IDisposable接口的所有类一起使用。如果它包装了托管和/或非托管资源,那么它就是该类的实现细节。

答案 1 :(得分:2)

1 - 这总是指您当前所在的对象范围

void myFunc(int sameName)
{
    this.sameName += sameName;
}

在这种情况下,this.sameName引用名为sameName的classes变量,而没有this限定符的引用引用局部变量(如果你的local / globals具有相同的名称或为了清晰起见,则使用。)

2 - 非托管资源是套接字,http服务器,连接,文件缓冲区等....任何IDisisable(不像自动GC那样像持久连接或某些GUI元素,如无模式等...)< / p>

3 - 技术上是的,如果你没有明确地调用File.Close()或将它放在using语句中,那么你对文件所做的更改可能无法刷回到光盘,所以如果你打开了一个文件缓冲区你应该总是在它上面调用Close()。

编辑:你可以忽略2和3,因为他从问题中删除了它们但我会留在这里以防万一