zoukankan      html  css  js  c++  java
  • C# 成员默认访问权限(public、private、protected、internal)

    1.C#五个修饰符的权限
    修饰符    级别    适用成员        解释
    public    公开    类及类成员的修饰符   对访问成员没有级别限制
    private     私有    类成员的修饰符     只能在类的内部访问
    protected   受保护的    类成员的修饰符        在类的内部或者在派生类中访问,不管该类和派生类是不是在同一程序集中
    internal    内部的     类和类成员的修饰符      只能在同一程序集(Assembly)中访问


    protected internal 受保护的内部:如果是继承关系,不管是不是在同一程序集中都可以访问;如果不是继承关系只能在同一程序集中访问

    2.类class的访问权限
    类的访问修饰符只有两种:public、internal。如果class前面没有加任何修饰符的话,默认是internal。
    public class:任何地方都可以访问到。
    internal class或class:只有同一个程序集中能访问到(程序集代表能生成exe或dll的项目,一个程序集中可以有多个命名空间)。例如:一个解决方案中有两个项目,就代表有两个程序集,两个程序集分别为A、B。其中A中有个class为internal级别的,那么B引用了A的程序集也是不能调用这个类。

    3.类成员(字段和方法)的访问权限
    类成员的修饰符可以为:public、private、protected、internal、protected internal。

    如果类成员(字段和方法)前面没有加有修饰符的话,默认访问权限是private。

    C#默认给非abstract类生成的构造函数为public,给abstract类生成的构造函数为protected

    自己写的构造函数,如果不标示访问权限,默认为private

    4.接口interface的访问权限
    同class一样,可以为public和internal,默认为internal
    但是接口中的方法默认访问权限为public,并且不能显示的定义其他访问类型。

    5.抽象类abstract class(该类只能作为父类被用于继承,而不能进行对象实例化)
    抽象类中必须有一个以上的抽象方法,访问类型可以定义为:public、protected、internal,不能是private

    6.枚举enum和结构struct权限
    枚举类型成员默认为public访问修饰符,且不能显示的使用其他修饰符。
    结构成员默认private修饰符,
    结构成员无法声明为protected成员,因为结构不支持继承。

    PS:命名空间和程序集的区别
    命名空间用于对类型进行逻辑分组。程序集则是程序的物理分组,对应于一个dll或exe文件。一个程序集中可以有多个命名空间。

  • 相关阅读:
    mojo 接口示例
    MojoliciousLite: 实时的web框架 概述
    接口返回json
    centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
    centos 6.7 perl 5.22 安装DBD 需要使用老的perl版本
    商业智能改变汽车行业
    商业智能改变汽车行业
    读MBA经历回顾(上)目的决定手段——北漂18年(48)
    perl 升级到5.20版本
    Group Commit of Binary Log
  • 原文地址:https://www.cnblogs.com/lip-blog/p/11844228.html
Copyright © 2011-2022 走看看