[C#] 類別&類別成員
存取修飾詞
- public : 公開
- private : 私人
- protected : 繼承者可以存取
- internal : 組件內可存取
- internal protected : 兩者取其一
其他修飾詞
- abstract
- 只有簽章
- 一定要override –> 強迫實作
- 使用情境:職責很抽象無法預定(ex."打"架、”打”屁、”打”牌)
- virtual : 可以覆寫
- sealed
- new
- 少用,最好不用!!!
- 上層沒有修飾詞,要蓋過去時才用
- 重要 : 使用new的method會靠type的型別來執行該method(慎用)
- override : 追回最上層一定是abstract、virtual,override本身也可以被覆寫
型別物件vs值型個體物件
常數
- 編譯時期就會嘗試取代值
- 使用readonly property取代
欄位(field)
屬性(property)
- 一種方法的變形
- 自動實作屬性 ({get;set;})
- 編譯完是沒有屬性的
- 唯讀/寫 (ex. {get;private set;})
方法(method)
- 關鍵字 : ref、out、params
- ref : 遞迴較常用,防止stack爆掉
- out : 強迫該方法一定要產生該物件
- params : 語法糖
- 傳值與傳址 : 分實體與參考型別的傳值、址,主要主詞在變數就對了
- Tuple
- object x; 代表 ?? (0000, null)
- 多載 :
- 逼不得已才用(東西一多就會變複雜)
- 如果參數一樣多 : 使用泛型、繼承式多型
委派
- 基礎 :
- 參考型別
- 一種方法簽章的型別
- 透過Invoke叫用,依序執行所有linkedlist
- 心中都有一個linkedlist
- Action型別
- Func型別
- Predicate(舊)
事件
建構式
- 呼叫自己的建構式很重要
- 隱含 : 語法糖,你應該要寫但你不寫也沒關係
- 建構式不會被繼承
- 繼承鏈順序
- 繼承關係 : System.Object -> A –> B
- GO : B初始分配位置 -> A初始 -> OBJ初始 -> A建構 -> B建構
沒有留言:
張貼留言