这基本上是一个教程问题,因为我是初学者我想在我们的C#代码开头使用的包含汇编和命名空间的using语句之间有什么区别
像这样:using System.Web.Services;
当我们在方法或代码中写入代码时。 像这样:
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
是否存在差异或两者相同,任何指导都会有所帮助和赞赏。
答案 0 :(得分:12)
first (Using Directive)是将命名空间纳入范围。
这是例如,所以你可以写
StringBuilder MyStringBuilder = new StringBuilder();
而不是
System.Text.StringBuilder MyStringBuilder = new System.Text.StringBuilder();
second (Using Statement)用于正确使用(创建和部署)实现IDisposable接口的对象。
例如:
using (Font font1 = new Font("Arial", 10.0f))
{
byte charset = font1.GdiCharSet;
}
此处,Font
类型实现了IDisposable
,因为当我们不再使用Font
实例时,unmanaged resources使用correctly disposed of需要{{3}} font1
)。
答案 1 :(得分:2)
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
一旦控件离开using块,这个使用就会自动处理适配器对象。
这相当于通话
SqlDataAdapter adapter = new SqlDataAdapter(cmd)
adapter.dispose();
请参阅官方文档: http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.71).aspx
答案 2 :(得分:0)
它们与你能得到的完全不同。
第一个显示了在命名空间内使用东西的意图。
第二个引用一次性物体并确保它被处置,无论发生什么(如实施尝试/最终)
答案 3 :(得分:0)
第一个允许您使用未在代码中定义的类型(告诉编译器在哪里可以找到它需要引用的代码。 参考:http://msdn.microsoft.com/en-us/library/sf0df423(v=VS.100).aspx
第二次使用确保在代码块结束时释放内存,或者在异常的情况下释放内存。 参考:http://msdn.microsoft.com/en-us/library/yh598w02.aspx
请参阅上面的链接,了解每个链接的详细文档。
答案 4 :(得分:0)
我确信有人会花大量时间来回答Google搜索的内容,但这里有几个链接可以帮助您入门。
using Statement (C# Reference)确保即使在对象上调用方法时发生异常,也会调用Dispose。
要允许在命名空间中使用类型,以便您不必使用using Directive (C# Reference)限定使用该命名空间中的类型。
您可能会发现MSDN是花一些时间浏览的绝佳资源。