訪問修飾符(public,private,protected,internal,sealed,abstract)


為了控件C#中的對象的訪問權限,定義對象時可以在前面添加修飾符.

修飾符有五種:private(私有的),protected(受保護的),internal(程序集內部的),public(公開的),以及protectde internal(只有本程序內或者繼承於該類的類型可以訪問).

可以使用修飾符的對象:namespace(命名空間),class(類),struct(結構),enum(枚舉),interface(接口),delegate(委托),function(函數),變量

1.public:

訪問不受限制.是權限最多的一個修飾符.namespace和enum成員,interface的成員隱式的具有public修飾符.不能再顯式添加其修飾符.

2.private:

只有同一個class或struct中能被訪問.class或truct中的成員如果不加修飾符則默認是private

3.protected:

訪問僅限於當前class或繼承的class.比如在一個class Student中聲明一個函數protected int Add(){    };在則只能在Student中用Add,或者在繼承於Student的子類中用base.Add()來用num.但實例化class得到的對象不能用Add.比如Student s = new Student();  s.Add();這樣是錯誤的.(注意:聲明class,struct前是不能加protected修飾的.只能用public 或internal)

4.internal:

僅限於當前程序集.即同一個project中.

class或struct,interface如果不加修飾符則默認是internal.但也可以顯示聲明為internal或public(注:如果class,struct是在一個class中聲明的也可以protected,private修飾.也就是說一個class中還可以嵌套的聲明一個class)

5.protected internal:

同一程序集或繼承的子類可訪問.其實相當於是protected 和internal兩個權限累加到一起了.(注意,由於struct是不能繼承的,所以它的成員也不能由protected或protected internal修飾.

注意:派生的class可訪問性不能比基類更高.也就是說如果基類被internal修飾則子類只能用internal修飾.如果基類都public修飾子類可用internal也可用public.

 

除了權限修飾符外還有四個修飾符sealed,abstract,virtual,partial(這四個修飾符可以和上面五個權限修飾符一起用.寫在權限修飾符前面或后面都行)

sealed只能用來修飾class,表示class不能被繼承.

abstract可用來修飾class和class中的成員.但必須是class被abstract修飾了,成員才能被abstract修飾.它表示此class是抽象類,不能實例化,必須被繼承並重寫抽象函數

virtual只能用來修飾class中的函數,表明是虛函數,虛函數除了可以被重寫外其他時候跟一般函數一樣.虛函數重不重寫是可選的,不是必須的

 

partial

通過使用關鍵字partial可以把一個class分開來寫,可以在一個project中的不同文件中.在一個class特別大,由幾個人合作寫時這功能特別有用.

 

REFERENCE FROM : http://blog.csdn.net/weiwenhp/article/details/6968868


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM