隱式轉換 & 顯示轉換(強制轉換) 隱式轉換 隱式類型轉換:將取值範圍外小的值,裝到一個取值範圍較大的變量裡面,叫做隱式。 例如,int的值裝到float裡:float a = 5;、float的變量裝到double裡:double b = 1.25f;。 float a = 5; //int的值裝到float變量裡 double b = 1.25f; //float的...
[C# 筆記] 運算符重載(Operator Overloading) 1
運算符重載(Operater Overload) 需求 如有下Box的類型,我們希望使用+來讓兩個Box做相加,結果返回一個新的Box,長寬厚是二者的加和。 class Box { public int width = 0; public int height = 0; public int depth = 0; } Box box1 = new Box(); B...
[C# 筆記] 事件參數泛型與練習
前情提要 - 事件(Event關鍵字) 事件(Event關鍵字) 事件(Event關鍵字) event修飾了一個委託,其實是給這個委託升級了,給他加了兩個規則: Event(事件) event修飾的委託,只能在類內調用執行,類外不可調用的。(只能被類內調用執行) event修飾的委託,不能直接賦值,只能通過+、-增減其中蘊含的方法。(只能通過+=、-+方式去加減所蘊含的方法)...
[C# 筆記] 事件Event概念
事件(Event) 事件是C#饋贈我們的禮物,是將委託的多播功能進行封裝後的工具類型。 這句話怎麼理解呢?其實事件本質上是一種多播的委託, 什麼是事件? 一個對象在完成某個工作後,或者發生了某種操作後,需要通知其他對象,從而做出反應;發送出去的通知就是事件。 案例1:火箭發射-火箭飛了 比如說:火箭發射,這裡有一個Push按鈕、有一個火箭 當你按下這個按鈕...
[C# 筆記] 多播委託 Multicast-Delegate
委託的形象化表述 按鈕 -> 我被點擊後會調用一個委託方法,類型是 OnClickDelegate: public delegate void OnClickDelegate(); ↓ 真正被調用的委託方法的名字是 OnClick: public OnClickDelegate OnClick; 如果你需要知道我被點擊了,就把方法委託給我OnClick吧 ...
[C# 筆記] 委託 Delegate
委託 Delegate 委託:是一種「引用類型」變量,用於儲存某個方法的「引用地址」。 定義格式: public delegate 返回值類型 委託類型名字(參數類型1 參數名字,參數類型2 參數名字, ...) 只關心輸入、輸出,所以輸入、輸出就決定了一個方法的簽名 案例 //聲明了一種數據類型(委託類型)叫做Calculate,代表的是某一類方法 public d...
[C# 筆記] 泛型約束
思考 如果想要實現下面泛型類別的程式碼,該怎麼做呢? class AGenericClass<T> { public void Say(T t) { t.Hello(); } } t.Hello()意味著我傳進來的一定是一個class,而這個class一定要有Hello()這個方法。 那麼,該用什麼要規範?用interface,讓它實現IH...
[C# 筆記] 泛型
泛型 概念:使用佔位符T來代表某種類型,編譯期間決定其具體類型 格式: class MyGeneric<T> 使用: MyGeneric<int> mg = new MyGeneric<int>(); 原理:編譯器在編譯的時候,會使用特化的類型替代掉類型佔位符,生成具體的class程式碼...
[C# 筆記] 一切的祖宗object類
Object 類型 對於 C# 中所有class,默認的父類或是最終基都是 Object類(System命名空間下,簡寫為object) System.Object --------------- string ToString(); System.Type GetType(); int GetHashCode(); bool Equals(); string ToStrin...
[C# 筆記] JSON 介紹
JSON 語法規則 數據在鍵值對中 "key":"value" 數據由逗號分隔 "key1":"value1","key2":"value2" 大括號保存對象 "employees":[{對象1},{對象2},{對象3}] 方括號保存陣列 "employees":[陣列] { "employees":[ { "firstName":"JJ", "...