Introduction
此篇文章總結(jié)c#一些常見的技術(shù)問題,每一個都是簡短的解釋,篇幅不大,不斷更新中…
const與readonly
readonly為運行時常量,const為編譯時常量。
編譯時常量比運行時常量快,性能好,但是缺乏靈活性(編譯時常量需要重新編譯應(yīng)用程序)。
編譯時常量(const)僅限于數(shù)值和字符串(基元類型),C#不允許使用new來初始化一個編譯時常量
const修飾的常量默認(rèn)是靜態(tài)的(類型)。
readonly修飾的字段可以在構(gòu)造函數(shù)中被修改。
使用const較之使用readonly的唯一好處就是性能。
partial關(guān)鍵字
此關(guān)鍵字允許將類、結(jié)構(gòu)或接口的定義拆分到多個文件中。
如果類的定義,其內(nèi)容很多,那么分別放在不同的文件中就是一個不錯的選擇。
在File1.cs中
namespace Aiqier
{
partial class A
{
int num = 0;
void MethodA() {}
partial void MethodC();
}
}
在File2.cs中
namespace Aiqier
{
partial class A
{
void MethodB() {}
partial void MethodC() {}
}
}
sealed關(guān)鍵字
當(dāng)對一個類應(yīng)用 sealed 修飾符時,此修飾符會阻止其他類從該類繼承。類似于Java中final關(guān)鍵字。
new和override
Override關(guān)鍵字主要是提供派生類對基類方法的新實現(xiàn),重寫的基類方法必須和Override的方法具有相同的簽名。
New關(guān)鍵字主要用來區(qū)別派生類和基類同名方法的選擇問題,通過隱藏基類方法,達(dá)到使編譯器調(diào)用正確的方法的目的。
也就是說New 關(guān)鍵字在作為修飾符用于向基類成員隱藏繼承成員時,對于派生類該關(guān)鍵字指示方法是重寫的新方法,但是關(guān)閉了多態(tài)性。具體調(diào)用的方法為聲明時變量的方法。
C#中using語句怎么用?
說道using的話,首先要說的就是.Net中的兩種資源,也就是托管資源和非托管資源。
托管資源:由CLR管理分配和釋放的資源,即從CLR里new出來的對象。
非托管資源:不受CLR管理的對象,如Windows內(nèi)核對象,文件,數(shù)據(jù)庫連接,套接字,COM對象。
這里要注意,假如說你的類型需要顯式釋放資源,那么一定要繼承IDispose接口。
而這個IDispose接口就是為using語法糖提供便利,那種在finall處調(diào)用Dispose函數(shù)的try-catch-finally語句塊,其實和using語句生成的IL代碼基本上完全一致。
c#類型轉(zhuǎn)換
見我之前寫的博客: c#類型轉(zhuǎn)換
更多信息請查看IT技術(shù)專欄