C 的預設訪問許可權

2021-08-01 18:28:19 字數 1199 閱讀 4953



1.在namespace中的類、介面預設是internal型別的,也可以顯示的定義為public型別,不允許是其他訪問型別。

2.在乙個類裡面,屬性和方法預設是private的,可以顯示的定義為public、private、protected、internal或protected internal等訪問型別。

3.介面中不能定義成員變數,介面中的方法預設為public的訪問許可權,但是不能顯示的定義任何訪問型別。

4.抽象類中必須有乙個以上的抽象方法,抽象方法可以是public、internal、protected,不能是private的訪問型別。

類中所有的成員,預設均為private。

c#用多種修飾符來表達類的不同性質。根據其保護級c#的類有五種不同的限制修飾符:     

public可以被任意訪問;   

protected只可以被本類和其繼承子類訪問;   

internal只可以被本組合體(assembly)內所有的類訪問,組合體是c#語言中類被組合後的邏輯單位和物理單位,其編譯後的副檔名往往是「.dll」或「.exe」。   

protected internal 唯一的一種組合限制修飾符,它只可以被本組合體內所有的類和這些類的繼承子類所訪問。   

private只可以被本類所訪問。

如果不是巢狀的類,命名空間或編譯單元內的類只有public和internal兩種修飾。    

new修飾符只能用於巢狀的類,表示對繼承父類同名型別的隱藏。   

override 只能用於巢狀的類,表示對繼承父類同名型別的覆蓋。

abstract用來修飾抽象類,表示該類只能作為父類被用於繼承,而不能進行物件例項化。

抽象類可以包含抽象的成員,但這並非必須。

abstract不能和new同時用。

下面是抽象類用法的偽碼:    

abstract class a   

abstract class b: a    }

class c: b    }    

抽象類a內含乙個抽象方法f(),它不能被例項化。類b繼承自類a,其內包含了乙個例項方法g(),但並沒有實現抽象方法f(),所以仍然必須宣告為抽象類。

類c繼承自類b,實現類抽象方法f(),於是可以進行物件例項化。     

sealed用來修飾類為密封類,阻止該類被繼承。同時對乙個類作abstract和sealed的修飾是沒有意義的,也是被禁止的。

C 預設訪問許可權

c 的預設訪問許可權老是搞混,特此記下。宣告類 方法 字段 屬性時不加訪問許可權修飾符時的訪問許可權是什麼呢?1.宣告命名空間 類,前面不加限制訪問修飾符時,預設訪問許可權為internal 訪問僅限於當前程式集。大龍注 從通俗的角度來說,乙個專案也就是乙個程式集。2.宣告類成員 域 屬性 方法 預...

C 預設訪問許可權

c 的預設訪問許可權老是搞混,特此記下。宣告類 方法 字段 屬性時不加訪問許可權修飾符時的訪問許可權是什麼呢?1.宣告命名空間 類,前面不加限制訪問修飾符時,預設訪問許可權為internal 訪問僅限於當前程式集。2.宣告類成員 域 屬性 方法 預設為private 以及結構型別,前面不加限制訪問修...

C 的預設訪問許可權

1.在namespace中的類 介面預設是internal型別的,也可以顯示的定義為public型別,不允許是其他訪問型別。2.在乙個類裡面,屬性和方法預設是private的,可以顯示的定義為public private protected internal或protected internal等訪...