c#中using语句和指令的区别是什么?

本文关键字:区别 是什么 指令 using 语句 | 更新日期: 2023-09-27 18:04:25

这基本上是一个教程问题,因为我是初学者,我想问我们在c#代码开始时使用的using语句包括汇编和命名空间有什么区别

:

using System.Web.Services;

和当我们在方法或代码中编写代码时。这样的:

using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))

两者是相同的还是有区别的,如果有任何指导将会很有帮助和感激。

c#中using语句和指令的区别是什么?

第一个(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是一个很好的资源,花一些时间浏览。