using+命令空間
導入命名空間中的所有類型
如:using System.Text;
using別名
using+別名=包括詳細命名空間信息的具體類型,這種做法有個好處就是當同一個cs引用了兩個不同的命名空間,但兩個命名空間都包括了一個相同名字的類型的時候。當需要用到這個類型的時候,就每個地方都要用詳細命名空間的辦法來區分這些相同名字的類型。而用別名的方法會更簡潔,用到哪個類就給哪個類做別名聲明就可以了。注意:并不是說兩個名字重復,給其中一個用了別名,另外一個就不需要用別名了,如果兩個都要使用,則兩個都需要用using來定義別名的
using s = System.Text;
using語句
是用來簡化資源釋放的,在一定的范圍內有效,出了這個范圍時,自動調用IDisposable釋放掉,當然并不是所有的類都適用,只有實現了IDisposable接口的類才可以使用。提供了機制保證Dispose方法被調用,無論using語句塊順利執行結束,還是拋出了一個異常。
Disposable:可任意使用的、一次性的、用完即丟棄的。該接口的定義是,提供了一種釋放非托管資源的機制。
using (var reader = new StringReader(manyLines))
{
????string? item;
????do
????{
????????item = reader.ReadLine();
????????Console.WriteLine(item);
????} while (item != null);
}
除了using可以達到這個目的意外,try?finally也是可以的。如
????var reader = new StringReader(manyLines);
????try
????{
????????string? item;
????????do
????????{
????????????item = reader.ReadLine();
????????????Console.WriteLine(item);
????????} while (item != null);
????}
????finally
????{
????????reader?.Dispose();
????}
}