c# 學習筆記02 – 繼承, 參數傳遞

今天看了有關類別的進階部分,基本上和 java差不多,差別是在預設為 private,像是 this() 的呼叫方式,和 java 的不同,是使用下列這種方式進行呼叫:


public MyClass() : this(1,2) { } //constructor
public MyClass(int a, int b) {}

有點類似 c# class 繼承的寫法,使用 : 之後,再加上 this() 進行 this() 的呼叫

call by value and call by reference 部分,ref 和 out 關鍵字:
c# 實作傳值的部分,和 java 一樣,對 function 參數為 primitive type 和 reference type 的處理方式也一樣,也就是說,預設的行為只有 call by value 一種,對 primitive type 和 reference type 來說,差別是在所傳的 value 一個是數值的 value 一個是記憶體位址的 value。但是 c# 多了 ref 和 out 這二個關鍵字,ref 是進行 call by reference 的行為,即是改變 function 引數的值,外面的參數也會跟著改變,另外 ref 的參數,在傳入之前必定要先初始化。 out 則是在傳之前不用初始化,只能用來傳出參數。

static constructor 的使用方式:
這部分類似 java 的 static initialize block,會在 class 載入時,進行 static variable 的初始化工作,即使是建立多個 instance 也只會執行一次。

static variable:
和 java 的使用方式相同,為 class level 的變數

function overloadding:
和 java 相同,以 function 的 signature 型態進行區別,與傳回值無關。

Advertisements

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: