1、using指令。即導入命名空間。
???? using + 命名空間名字,這樣可以在程序中直接用命令空間中的類型,而不必指定類型的詳細命名空間,類似于Java的import,這個功能也是最常用的,幾乎每個cs的程序都會用到。
???? 例如:using System; 一般都會出現在*.cs中。
2、using別名。using + 別名 = 包括詳細命名空間信息的具體的類型。
這種做法有個好處就是當同一個cs引用了兩個不同的命名空間,但兩個命名空間都包括了一個相同名字的類型的時候。當需要用到這個類型的時候,就每個地方都要用詳細命名空間的辦法來區分這些相同名字的類型。而用別名的方法會更簡潔,用到哪個類就給哪個類做別名聲明就可以了。注意:并不是說兩個名字重復,給其中一個用了別名,另外一個就不需要用別名了,如果兩個都要使用,則兩個都需要用using來定義別名的。
例子:
using System;
using aClass = NameSpace1.MyClass;
using bClass = NameSpace2.MyClass;
namespace NameSpace1
{
??? public class MyClass
??? {
??????? public override string ToString()
??????? {
??????????? return "You are in NameSpace1.MyClass";
??????? }
??? }
}
namespace NameSpace2
{
??? class MyClass
??? {
??????? public override string ToString()
??????? {
??????????? return "You are in NameSpace2.MyClass";
??????? }
??? }
}
3、using 語句? 定義一個范圍,在范圍結束時處理對象
場景:
當在某個代碼段中使用了類的實例,而希望無論因為什么原因,只要離開了這個代碼段就自動調用這個類實例的Dispose。
要達到這樣的目的,用try...catch來捕捉異常也是可以的,但用using也很方便。
好處是:1、節約內存資源,using只作用{}括號里面的,出現括號里的con對象就釋放掉了,這是微軟推出的寫法;
??????????? 2、允許在命名空間中使用類型,以便您不必限定在該命名空間中使用的類型
例子:
???????? using(SqlConnection con=new SqlConnection())
??????????? {
??????????????? ...
??????????? }
在上面代碼中,using語句的一開始定義了一個SqlConnection的對象,之后在整個語句塊中都可以使用con,在using語句塊結束的時候,con的Dispose方法將會被自動調用。using語句不僅免除了程序員輸入Dispose調用的代碼,它還提供了機制保證Dispose方法被調用,無論using語句塊順利執行結束,還是拋出了一個異常。代碼都會演示using的這一保護機制。
也就是說:using語句為實現了IDisposable的類型對象調用Dipose方法,using語句能夠保證使用的對象的Dispose方法在using語句塊結束時被調用,無論是否有異常被拋出。C#編譯器在編譯時自動為using語句加上try/finally塊,所以using的本質和異常捕捉語句一樣,但語法更為簡潔。所有using使用的對象都應該在using語句開始后再初始化,以保證所有的對象能夠被Dispose。
using 語句塊也可以這么說可以分獲取、使用和釋放三個部分。
1.獲取表示創建變量并將其初始化,以便引用系統資源。在using()中
2.使用表示訪問資源并使用資源執行操作。using{}之間的語句代表資源的使用過程。
3.釋放表示針對resourcename中的對象調用Dispose方法。這使該對象可以完全終止其非托管資源“}”塊釋放“{”塊控制的資源。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
