C# 访问修饰符

2018-01-16 04:10 更新

C#访问修饰符

类型或类型成员可以通过使用访问修饰符来限制其对其他类型的可访问性。

例如,我们可以设置一个方法的访问级别,使其只能在定义它的类型内部访问。以这种方式,我们知道该方法不使用,将在任何其他地方使用。

以下是访问修饰符的列表。

修饰符描述
public完全可及。
internal仅在包含装配体或朋友装配体内可访问。
private仅在包含类型中可访问。
protected只能在包含类型或子类中访问。
protected internal保护和内部可访问性的联合。

例子

在下面的代码中,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

子类中的函数可以调用methodA,但不能调用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(); 
    }
} 

访问修饰符的限制

当覆盖基类函数时,可重写函数必须是相同的。

例如:

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

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

class Subclass2 : BaseClass { 
   public override void methodB() {} 
} // Error 
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号