C#語言中五種存取修飾詞

來源:互聯網
上載者:User

在C#語言中,共有五種存取修飾詞:public、private、protected、internal、protected internal。作用範圍如下表:

存取修飾詞 說明
public 公有訪問。不受任何限制。
private 私人訪問。只限於本類成員訪問,子類,執行個體都不能訪問。
protected 保護訪問。只限於本類和子類訪問,執行個體不能訪問。
internal 內部訪問。只限於本項目內訪問,其他不能訪問。
protected internal 內部保護訪問。只限於本項目或是子類訪問,其他不能訪問

C#成員類型的可修飾及預設修飾符如下表:

成員類型 預設修飾符 可被修飾符
enum public none
class private public、protected、internal、private、
protected internal
interface public none
struct private public、internal、private

下面我就結合執行個體,講一下public、private、protected、internal和protected internal的作用範圍。

如下代碼:

       1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Text;
   4:
      5:  namespace AccessModifier
   6:  {
   7:      public class AccessModifierClass
   8:      {
   9:          public string GetPublicString()
  10:          {
  11:              return "Public String";
  12:          }
  13:
     14:          protected string GetProtectedString()
  15:          {
  16:              return "Protected String";
  17:          }
  18:
     19:          private string GetPrivateString()
  20:          {
  21:              return "Private String";
  22:          }
  23:
     24:          internal string GetInternalString()
  25:          {
  26:              return "Internal String";
  27:          }
  28:
     29:
          protected internal string GetProtectedInternalString()
  30:          {
  31:              return "Protected Internal String";
  32:          }
  33:
     34:          void AvailableAccessModifier()
  35:          {
  36:              this.GetPublicString();
  37:              this.GetPrivateString();
  38:              this.GetInternalString();
  39:              this.GetProtectedInternalString();
  40:              this.GetProtectedString();
  41:          }
  42:      }
  43:
     44:
      public class TestAccessModifierClass1
  45:      {
  46:          void AvailableAccessModifier()
  47:          {
  48:              AccessModifierClass item = new AccessModifierClass();
  49:              item.GetPublicString();
  50:              item.GetInternalString();
  51:              item.GetProtectedInternalString();
  52:          }
  53:      }
  54:
     55:      public class TestAccessModifierClass2 : AccessModifierClass
  56:      {
  57:          void AvailableAccessModifier()
  58:          {
  59:              AccessModifierClass item = new AccessModifierClass();
  60:              item.GetPublicString();
  61:              item.GetInternalString();
  62:              item.GetProtectedInternalString();
  63:              base.GetProtectedString();
  64:          }
  65:      }
  66:  }AccessModifierClass是我們的存取修飾詞類,裡面有五種存取修飾詞方法,可見在AccessModifierClass類裡面的AvailableAccessModifier()方法可以訪問所有的方法。

在TestAccessModifierClass1類中的AvailableAccessModifier()方法只能訪問public、Internal和Protected Internal方法。

TestAccessModifierClass2類繼承自AccessModifierClass類,所以它的AvailableAccessModifier()方法可以訪問public,internal,protected和protected internal方法。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.