存取修飾詞(public,private,protected,internal,sealed,abstract)

來源:互聯網
上載者:User
文章目錄
  • 1.public:
  • 2.private:
  • 3.protected:
  • 4.internal:
  • 5.protected internal:

為了控制項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特別大,由幾個人合作寫時這功能特別有用.

在Winform開發中系統也自動的用partial為我們把一個class分開來寫.比如我們添加Form1.則會看到有兩個檔案Form1.cs, Form1.Designer.cs它們其實就是一個class,通過關鍵字partial分成兩個檔案.我們主要是在Form1.cs中添加代碼.Form1.Designer.cs是自動產生的跟頁面有關的代碼.其實我們也完全可以不拖控制項,而是由自己去Form1.Designer.cs中添加代碼.不過這樣可太麻煩了啊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.