C#筆記整理
裏氏轉換:
1.子類可以賦值給父類:如果有一個地方需要一個父類作為參數,我們可以給一個子類代替;
2.如果父類中裝的是子類對象,那麽可以將這個父類強轉為子類對象;
foreach循環:
foreach(var item in Txt)
{
Console.Write(item);
}
item:代表集合裏的每一項;in後面的:要遍歷的目標集合;
裝箱:值類型轉換為引用類型;
拆箱:引用類型轉換為值類型;
前提:兩者要有繼承關系;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
委托:是一種數據類型,像類一樣(可以聲明委托類型變量)
定義委托類型,註意定義委托時是否有返回值和參數,關鍵是看委托裏面存放的那個方法有沒有返回值和參數,要保持一致。
系統自帶泛型委托:
1.Action 無參數無返回值
擴展方法:Action<int> 參數是int類型,無返回值,只要是Action都是無返回值的
2.Func<int> 表示沒有參數 返回值是int;
Func<int,string> 表示的是參數是int,返回值是string。
只要是Func<>裏面有多個類型,最後一個永遠是返回值。
委托和事件的區別:
委托:可以用等號(=)來賦值,可以在外部進行調用,是一種數據類型。
事件:不可以用等號(=)來賦值,不可以在外部進行調用,不是數據類型,它修飾的是一個對象。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ToString("X2") 為C#中的字符串格式控制符 X為 十六進制 2為 每次都是兩位數比如 0x0A ,若沒有2,就只會輸出0xA
假設有兩個數10和26,正常情況十六進制顯示0xA、0x1A,這樣看起來不整齊,為了好看,可以指定"X2",這樣顯示出來就是:0x0A、0x1A ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在使用靜態構造函數的時候應該註意幾點:
1、靜態構造函數既沒有訪問修飾符,也沒有參數。因為是.NET調用的,所以像public和private等修飾符就沒有意義了。
2、是在創建第一個類實例或任何靜態成員被引用時,.NET將自動調用靜態構造函數來初始化類,也就是說我們無法直接調用靜態構造函數,也就無法控制什麽時候執行靜態構造函數了。
3、一個類只能有一個靜態構造函數。
4、無參數的構造函數可以與靜態構造函數共存。盡管參數列表相同,但一個屬於類,一個屬於實例,所以不會沖突。
5、最多只運行一次。
6、靜態構造函數不可以被繼承。
7、如果沒有寫靜態構造函數,而類中包含帶有初始值設定的靜態成員,那麽編譯器會自動生成默認的靜態構造函數。
C#筆記整理