c#中using语句和指令的区别是什么?
本文关键字:区别 是什么 指令 using 语句 | 更新日期: 2023-09-27 18:04:25
这基本上是一个教程问题,因为我是初学者,我想问我们在c#代码开始时使用的using语句包括汇编和命名空间有什么区别
:
using System.Web.Services;
和当我们在方法或代码中编写代码时。这样的:
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
两者是相同的还是有区别的,如果有任何指导将会很有帮助和感激。
第一个(Using指令)是将命名空间引入作用域。
例如,你可以写
StringBuilder MyStringBuilder = new StringBuilder();
而不是
System.Text.StringBuilder MyStringBuilder = new System.Text.StringBuilder();
第二个(Using语句)用于正确地使用(创建和处置)实现IDisposable接口的对象。
例如:using (Font font1 = new Font("Arial", 10.0f))
{
byte charset = font1.GdiCharSet;
}
这里,Font
类型实现了IDisposable
,因为它使用非托管资源,当我们不再使用Font
实例(font1
)时,需要正确处置这些非托管资源。
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
一旦控件离开using块,using就会自动处置适配器对象。
这相当于调用
SqlDataAdapter adapter = new SqlDataAdapter(cmd)
adapter.dispose();
查看官方文档:http://msdn.microsoft.com/en-us/library/yh598w02 (v = vs.71) . aspx
它们几乎是你能找到的最不同的。
第一个表示意图在命名空间内使用东西。
第二个方法接受一个可丢弃对象的引用,并确保无论发生什么情况(比如实现try/finally)
第一个允许您使用代码中未定义的类型(告诉编译器在哪里找到它需要引用的代码)。裁判:http://msdn.microsoft.com/en-us/library/sf0df423 (v = VS.100) . aspx
第二个用法确保在代码块结束时释放内存,或者在出现异常的情况下释放内存。裁判:http://msdn.microsoft.com/en-us/library/yh598w02.aspx
请参阅上面的链接,查看每个链接的详细文档。
我相信有人会花很多时间回答什么相当于谷歌搜索,但这里有几个链接,让你开始。
using语句(c#参考)确保即使在调用对象的方法时发生异常也会调用Dispose。
要允许在命名空间中使用类型,这样您就不必限定在该命名空间中使用类型,请使用Directive (c# Reference)。
你可能会发现MSDN是一个很好的资源,花一些时间浏览。