ArrayList & Hashtable 不常用了,用泛型 List Dictionary<TKey,TValue> Q:為什麼不再使用ArrayList和Hashtable? 會發生裝箱和拆箱。 ArrayList和Hashtable 很少在用,為什麼? 除了取數據不方便外,花費時間較多、效率低外,因為涉及到裝箱、拆箱的問題。 [C# 筆記]...
[C# 筆記] 高效的 StringBuilder
StringBuilder高效的字串操作 當大量進行字串操作的時候,比如,很多次的字串拼接操作。 String對象是不可變的。每次使用 System String類中的酪方法時,都要在內存中創建一個新的字串對象,就需要為該新對象分配新的空間。在需要對字串執行重複修改的情況下,與創建新的String 對象相關的系統開銷可能會非常大。如果要修改字串二不創建...
[C# 筆記] string 字串複習-End
練習1: 把類似的字串中重複的符號去掉 “123-456-789—123-2 “ => “123-456-789-123-2” .split() 思路 split()把所有的橫線全都幹掉 再用 join把他們連起來 //123 - 456 - 789-- - 123 - 2 把類似的字串中重複的符號去掉 //123-456-789-123-2 .split() str...
[C# 筆記] string 字串複習
字串 字串的不可變性 字串 s1,表面上是給s1重新賦值,實際上,是重新開了一塊空間 存著”李四”,”張三”還在不在? 在。那還有沒有人去指向這個”張三”? 沒有。最終他被誰幹掉了? GC。 string s1 = "張三"; //沒有人去指向它,GC處理掉 s1 = "李四"; 什麼時候會用到GC?當我們的程序結束之後,GC會掃描著整個內存,發有像”張三”這種沒有被任何人所指向...
[C# 筆記] .Net基礎-複習-R
TODO: 單例模式,只能創建一個物件(對象) 1.註解 //、/**/、/// 單行註解://註解單行代碼 多行註解:/* 要註解的內容 */ 文檔註解:///註解類別和方法 HTML: CSS:/* 要註解的內容 */ 2.命名規範 Camel駱駝命名:變數/變量、Field(欄位/字段) 要求首單詞的或字母小寫,其餘單詞首字母大寫,變數/變量、欄位...
[C# 筆記] 物件導向-複習-R
欄位、屬性、構造函數、this、new、base Q:Field(字段/欄位)是幹什麼的? 儲存數據用的 Q:屬性是幹什麼的? 保護Field(字段/欄位)用的 Q:構造函數是幹什麼的? 初始化對象(物件) 初始化對象(物件)說白了,就是給對象(物件)的每一個屬性去賦值。 Q:什麼時候會調用構造函數? 當我們new的時候會調用構造函數, this 關鍵字 this 有兩個作用 ...
[C# 筆記] 物件導向 -R
TODO: 單例模式,只能創建一個物件(對象) 物件導向(面向對象)的複習 封裝、繼承、多型(多態) Class類別的成員 Class類別的成員:屬性、欄位/字段、構造函數、方法、介面/接口 Field(欄位/字段):儲存數據,訪問修飾符應該設置為private私有的。 屬性:保護Field(欄位/字段),對Field的取值和賦值進行限定。 new關鍵字 new關鍵字:...
[C# 筆記] 註解&命名 -R
註解 //、/**/、/// 單行註解 //註解單行代碼 多行註解 /* 要註解的內容 */ 文檔註解 ///註解類別和方法 HTML CSS /* 要註解的內容 */ 命名規範 Camel駱駝命名:變數/變量、Field(欄位/字段) Pascal帕斯卡命名:類別、方法、屬性名 Camel駱駝命名 要求首單詞的或字...
[C# 筆記] 物件導向 複習結束
練習1:物件導向 定義父親類Father(姓lastName, 財產property, 血型bloodType) 兒子類Son(玩遊戲PlayGame方法),女兒類Daughter(跳舞Dance方法) 調用父類構造函數(:base())給子類字段賦值 //定義父親類Father(姓lastName, 財產property, 血型bloodType) //兒子類Son(玩遊戲Play...
[C# 筆記][多型] Interface 介面複習
回顧 虛方法 virtural、抽象方法 abstract 虛方法 virtural 關於虛方法需要注意的幾點: 父類中如果有方法需要讓子類重寫,則可以將該方法標記為 virtual 虛方法在父類中必須有實現,哪怕是空實現 什麼是空實現?有大括號,沒有內容 void T() { } 你有了大括號就叫做有方法體,你裡面什麼都不寫,叫空實現 //如果我這個方法需要被子類...