c#中的五种访问修饰符

c#中的五种访问修饰符

  • public,private,protected,internal,protected internal
    访问修饰符 说明
    public 公有访问,不受任何限制。
    private 私有访问,只限于本类成员访问,子类、实例都不能访问。
    protected 保护访问,只限于本类和子类访问,实例不能访问。
    internal 内部访问,只限于本项目内访问,其他不能访问。
    protected internal 内部保护访问,只限于本项目或者子类访问,其他不能访问。

**补充

  • protected internal 在现版本的编程使用较少,它是将保护访问与内部访问结合起来形成的一种内部保护访问。
    直接在命名空间中声明的类和结构(即:没有嵌套在其他类或结构中的类和结构)可以是公共类和结构,也可以是内部类和结构。如果不指定访问修饰符,则默认为 internal。
    派生类的可访问性不能高于其基类型。换句话说,不能有从内部类A派生的公共类B。 如果允许这种情况,将会使A成为公共类,因为A的所有受保护的成员或内部成员都可以从派生类访问。
    结构成员,包括嵌套的类和结构,可以声明为公共的、 内部的,或私有的。 类成员(包括嵌套的类和结构)可以为公共的、受保护的内部、受保护的、内部的或私有的。 类成员和结构成员的访问级别,包括嵌套类和结构,默认为私有。 不可以从包含类型之外访问私有嵌套类型。
    1、C#中方法、类等的默认访问修饰符

接口(interface)
接口成员访问修饰符默认为public,且不能显示使用访问修饰符。
类(class)
构造函数默认为public访问修饰符。析构函数不能显示使用访问修饰符且默认为private访问修饰符。类的成员默认访问修饰符为private。
枚举(enum)
枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。
结构(struct)
结构成员默认为private修饰符。结构成员无法声明为protected成员,因为结构不支持继承。
嵌套类型
嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致。

2、成员类型的可修饰,及其默认(即如果不指定)修饰符

成员类型 默认修饰符 可被修饰符
enum public none
class private public、protected、internal、private、protected internal
interface public none
struct private public、internal、private

3、接口成员、枚举成员、 委托行为

接口成员始终是公共成员,因为接口的用途是让其他类型能够访问某个类或结构。访问修饰符不能应用于接口成员。
枚举成员始终是公共的,不能应用任何访问修饰符。
委托行为类似于类和结构。默认情况下,它们在命名空间中直接声明时具有内部访问权,在嵌套时具有私有访问权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值