原文地址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();
}
}
}
至今第三種情況個人還沒有用到過。