C#快速入門教程(4)——類成員的作用域

曹化宇發表於2018-09-08

本課討論的是類成員的作用域,也就是類成員的訪問級別,前面的示例中,我們已經看到兩種訪問級別,即私有的(private)和公共的(public),本課將對常用的訪問級別做一些總結和說明。

首先討論private訪問級別,顧名思義,此類成員只能在類的內部使用,一般來講,會使用私有的欄位或屬性儲存內部資料,使用私有方法進行輔助操作;當然,類的其他型別成員也可以根據選擇是否定義為只能內部訪問。

public訪問級別就大方多了,此類成員可以通過類或例項訪問,可以在類的外部進行呼叫,一般來講,類的主要資料和操作應該定義為public訪問級別,為類的使用者提供資料及其操作介面。

另一個常用的訪問級別是受保護的(protected),此類成員只允許在本類或其子類中訪問。此類成員在類的繼承結構中非常有用,定義為protected級別的成員,可以在類與子類的內部傳遞資料,有效避免了private和public兩種訪問級別的不足,比如,需要在子類中使用的資料,在父類中定義為private是不行的,但定義為public訪問級別又可能將不需要公開的資料和操作暴露了。在“繼承”一課時,我們會看到protected訪問級別的具體應用。

還一個訪問修飾符是internal關鍵字,稱為內部訪問級別,這類成員與public訪問級別類似,但只能在其定義的程式集(assembly)內使用。

除了獨立使用這些,還可以將protected和internal組合使用,定義的成員只能被本類或本程式集內的子類訪問。

如果定義類的成員時沒有指定訪問修飾符,則預設為private級別,只能在其定義的範圍內使用。不只是類的成員,在後續內容的各類語句結構中,同樣遵循這一原則,即,在某一語句塊定義的變數、物件等只能在其定義的語句塊中使用,應注意避免同名變數或物件的衝突問題,特別在巢狀結構或資料傳遞過程中更需要重視訪問級別問題。

本課,大家需要理解訪問修飾符private、public、protected和internal的含義,以及語句塊訪問級別的概念,它接近於語句塊私有成員的概念。

CHY軟體小屋原創作品!

相關文章