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