C# 中 using 的幾種使用場景
using在C#中隨處可見,比如引入命名空間,這是也是每個C#的cs頁面必須存在的,除了引入命名空間還有幾種用法,下面將介紹這幾種的使用。
1.用于引入命名空間
這是最常見最基本的用法, 這樣可以在程序中直接用命令空間中的類型,而不必指定類型的詳細命名空間,類似于Java的import,這個功能也是最常用的,幾乎每個cs的程序都會用到。
語法:using 命名空間名字。下面是具體案例
using System;
using TestnamespaceName;//引入了下面的命名空間,有可能不是一個文件夾
namespace ConsoleApp1
{
public class Program2
{
public static void Main2()
{ var rel = new tests(); }//引入命名空間才能實例化類
}
}
namespace TestnamespaceName //命名空間
{
public class tests { }
}
2.給命名空間取別名
當兩個cs文件都包含同一個名字的命名空間的時候使用,不需要使用詳細命名空間來區(qū)分相同的名字,直接使用別名更方便。
語法:using 別名=class.name
using System;
using aClass = NameSpace1.MyClass; //取別名
using bClass = NameSpace2.MyClass;//取別名
namespace ConsoleAppUsing
{
class Program
{
static void Main(string[] args)
{
aClass my1 = new aClass();
Console.WriteLine(my1);
bClass my2 = new bClass();
Console.WriteLine(my2);
}
}
}
3.在定義的范圍釋放托管資源
當在某個代碼段中使用了類的實例,而希望無論因為什么原因,只要離開了這個代碼段就自動調(diào)用這個類實例的Dispose,常見的有關(guān)閉數(shù)據(jù)庫鏈接、關(guān)閉讀取文件流等。也可以用try...catch來捕捉異常,但使用using更佳。
語法:using(){ } 或者using var classa =new Classa();
//方式1
using(SqlConnection conn = new SqlConnection(conStr))/
{
conn.Open();
}//結(jié)束后自動釋放conn
//方式2
using SqlConnection conn = new SqlConnection(conStr)//這樣也可以
注意,方式2是C#8引入了一個新的using語法,可以不用花括號,變量出了其生命周期自動釋放。
4.using static 指令
指定無需指定類型名稱即可訪問其靜態(tài)成員的類型,這個跟第一種有點類似。
語法:using static System.class ;var a= ;
using static System.Math;//靜態(tài)成員的類型
public class Program2
{
public static void Main2()
{ var rel = new tests();
var a = PI; // 直接使用System.Math.PI
}
}