Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 此关键字位于C中的using块中#_C#_Using Statement - Fatal编程技术网

C# 此关键字位于C中的using块中#

C# 此关键字位于C中的using块中#,c#,using-statement,C#,Using Statement,使用C#中的块,此指的是的内部 this在using块的内部与this在using块的外部是相同的:类的当前实例 所有实现IDisposable接口的类都应该使用using块。如果类包装托管和/或非托管资源,则它是该类的一个实现细节。1-例如,它总是指您当前所在的对象范围 void myFunc(int sameName) { this.sameName += sameName; } 在本例中,this.sameName指的是名为sameName的类变量,而不带this限定符的类变量指

使用C#中的块,
指的是
的内部

this
using
块的内部与
this
using
块的外部是相同的:类的当前实例


所有实现IDisposable接口的类都应该使用
using
块。如果类包装托管和/或非托管资源,则它是该类的一个实现细节。

1-例如,它总是指您当前所在的对象范围

void myFunc(int sameName)
{
    this.sameName += sameName;
}
在本例中,this.sameName指的是名为sameName的类变量,而不带this限定符的类变量指的是局部变量(如果有同名的局部/全局变量或为了清楚起见,请使用)

2-非托管资源包括套接字、HTTPServer、连接、文件缓冲区等。。。。任何IDisposable(不会像持久连接或一些GUI元素(如无模式表单等)那样自动GC)的东西

3-从技术上讲是的,如果您不明确地调用File.Close()或将其放在using语句中,则您对该文件所做的更改可能不会刷新回光盘,因此如果您打开了文件缓冲区,则应始终对其调用Close()


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

我也已经回答了另外2个:\删掉下面已经回答的部分。“既然我们正在讨论什么是非托管资源?正常的文件读取是否属于此范围?”+1但是,“…应与所有[一次性]类一起使用…”附加了一些字符串<代码>使用
仅在对象生存期可以从单个作用域控制时有效(该作用域“可以在调用堆栈中工作”),并且在某些情况下不合适或不适用。@pst:scope of
使用标记有
{
}
符号的
块的作用域,以及this“指针”的作用域与应用程序的范围相同