C# 此关键字位于C中的using块中#
使用C#中的块,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限定符的类变量指
此
指的是的内部 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“指针”的作用域与应用程序的范围相同