原文地址http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html,感謝心茶前輩的總結。
using+命名空間,這種方法基本學習過C#的都用過,好處在於,寫代碼的時候不需要指定詳細的命名空間
using System.Windows.Media; using System.Windows.Media.Imaging;
是用來簡化資源釋放的,在一定的范圍內有效,除了這個范圍時,自動調用IDisposable釋放掉,當然並不是所有的類都適用,只有實現了IDisposable接口的類才可以使用
using (SqlConnection conn=new SqlConnection("Data Source=.;Initial Catalog=imageprocess;Integrated Security=True")) { conn.Open(); using(SqlCommand cmd=conn.CreateCommand()) { cmd.CommandText = "select count(*) from [user]"; int i = (int)cmd.ExecuteScalar(); MessageBox.Show(i.ToString()); }//這個括號結束的時候自動釋放SqlCommand }//這個括號結束的時候自動釋放SqlConnection
除了using可以達到這個目的意外,try catch也是可以的。
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"; } } } namespace testUsing { using NameSpace1; using NameSpace2; /// <summary> /// Class1 的摘要說明。 /// </summary> class Class1 { /// <summary> /// 應用程序的主入口點。 /// </summary> [STAThread] static void Main(string[] args) { // // TODO: 在此處添加代碼以啟動應用程序 // aClass my1 = new aClass(); Console.WriteLine(my1); bClass my2 = new bClass(); Console.WriteLine(my2); Console.WriteLine("Press any key"); Console.Read(); } } }
至今第三種情況個人還沒有用到過。