2022-05-01 分類: 網站建設
.Net開發的兩個小技巧
一、@符號的妙用
1、可以作為保留關鍵字的標識符
C#規范當中,不允許使用保留關鍵字(class、bool等)當作普通的標識符來命名,這時候@符號作用就體現
出來了,可以通過@符號前綴把這些保留關鍵字可以當作普通的字符使用。
比如:
string @class="hello"; //是正確的
string class="hello"; //報錯
2、@符號可以表示跨行字符串
比如:
string str=@"hello
world
!"; //這樣寫是正確的
3、字符串轉義字符
很多時候程序中出現目錄的時候會有“\”,字符表示轉義字符,要表示普通字符的時候需要寫成“\\”,當這樣字符過多的時候寫起來不是很簡潔,這時候可以使用@字符。
比如:
string path="d:\\Data\\web\\ss.txt";//一般寫法
string path=@"d:\Data\web\ss.txt";//使用@符號
二、using的用法
1、using 指令
用來引入命名空間,比如:using System;
2、為命名空間或類型創建別名
using引入命名空間,并不等于編譯器編譯時加載該命名空間所在的程序集,程序集的加載決定于程序中對該程序集是否存在調用操作,
如果代碼中不存在任何調用操作則編譯器將不會加載using引入命名空間所在程序集。
創建別名的另一個重要的原因在于同一文件中引入的不同命名空間中包括了相同名稱的類型,
例如SharpMap.Geometries.Point與System.Drawing.Point。為了避免出現名稱沖突,可以通過設定別名來解決:
using SGPoint = SharpMap.Geometries.Point;
using SDPoint = System.Drawing.Point;
盡管我們可以通過類型全名稱來加以區分,但是這顯然不是好的解決方案。用using指令創建別名,
有效的解決了這種可能的命名沖突,才是好的解決方案。
3、using語句
using 語句允許程序員指定使用資源的對象應當何時釋放資源。using 語句中使用的對象必須實現 IDisposable 接口。
IDisposable接口提供了 Dispose 方法,該方法將釋放此對象的資源。
例如:
復制代碼
using(TextReader reader=new StreamReader(filename))
{
string line;
whil((line=read.ReadLine())!=null)
{
Console.WriteLine(line);
}
}
復制代碼
等價于以下形式:
復制代碼
{
TextReader reader=new StreamReader(filename);
try
{
string line;
while((line=read.ReadLine())!=null)
{
Console.WriteLine(line);
}
}
finally
{
if(reader!=null)
{
(IDisposible)reader.Dispose();
}
}
}
復制代碼
4、使用規則
1、using只能用于實現了IDisposable接口的類型,禁止為不支持IDisposable接口的類型使用using語句,否則會出現編譯錯誤;
2、using語句適用于清理單個非托管資源的情況,而多個非托管對象的清理最好以try-finnaly來實現,
因為嵌套的using語句可能存在隱藏的Bug。內層using塊引發異常時,將不能釋放外層using塊的對象資源;
3、using語句支持初始化多個變量,但前提是這些變量的類型必須相同,例如:
復制代碼
using(Pen p1 = new Pen(Brushes.Black), p2 = new Pen(Brushes.Blue))
{
//todo
}
復制代碼
4、針對初始化對個不同類型的變量時,可以都聲明為IDisposable類型,例如:
復制代碼
using (IDisposable font = new Font("Verdana", 12), pen = new Pen(Brushes.Black))
{
float size = (font as Font).Size;
Brush brush = (pen as Pen).Brush;
}
復制代碼
公眾號:原文
新聞名稱:.Net開發的兩個小技巧
當前路徑:http://m.newbst.com/news19/148269.html
成都網站建設公司_創新互聯,為您提供軟件開發、外貿網站建設、ChatGPT、網站設計、服務器托管、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容