C# 訪問修飾符

2018-01-16 04:10 更新

C#訪問修飾符

類型或類型成員可以通過使用訪問修飾符來限制其對其他類型的可訪問性。

例如,我們可以設(shè)置一個方法的訪問級別,使其只能在定義它的類型內(nèi)部訪問。以這種方式,我們知道該方法不使用,將在任何其他地方使用。

以下是訪問修飾符的列表。

修飾符描述
public完全可及。
internal僅在包含裝配體或朋友裝配體內(nèi)可訪問。
private僅在包含類型中可訪問。
protected只能在包含類型或子類中訪問。
protected internal保護和內(nèi)部可訪問性的聯(lián)合。

例子

在下面的代碼中,Class2可從組件外部訪問; Class1不是:

class Class1 {} // Class1 is internal (default) 
public class Class2 {} 

在下面的代碼中,Class2將字段x暴露給同一程序集中的其他類型; Class1不:

class Class1 { 
  int x; 
} // x is private (default) 
class Class2 { 
  internal int x; 
} 

例2

子類中的函數(shù)可以調(diào)用methodA,但不能調(diào)用methodB:

class BaseClass { 
    void methodB() {} // methodB is private (default) 
    protected void methodA() {} 
} 

class Subclass : BaseClass { 
    void Test1() { 
       methodB();  // Error - cannot access methodB 
    } 
    void Test2() { 
       methodA(); 
    }
} 

訪問修飾符的限制

當(dāng)覆蓋基類函數(shù)時,可重寫函數(shù)必須是相同的。

例如:

class BaseClass { 
   protected virtual void methodB() {} 
} 

class Subclass1 : BaseClass { 
   protected override void methodB() {} 
} // OK 

class Subclass2 : BaseClass { 
   public override void methodB() {} 
} // Error 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號