public是可访问权限最高的,比如姓名,每个人都可以知道别人的姓名,这个不是什么秘密

protected的访问权限要低些,只有子类才可以访问得到父类的protected属性。就好像老子的财产只有儿子才能继承。如果别人想要问:hey, son.财产=多少?儿子会拒绝,因为son的财产是从father那里继承来的,不可外泄。

private的访问权限最低了,只有本人才能知道。比如某人的银行卡密码。只有他自己类内部的方法才能访问到这个属性。

internal的访问权限仅限于同一程序集内部。什么叫同一程序集呢?也就是在同一个类库(dll)里,类的internal属性跟public属性一样,谁都可以访问。

protected internal的访问权限是protected与internal的并集。意思是说,对于隶属于同一个程序集的其他类,可以像internal属性一样访问他,对于不同程序集的类,只有继承了我这个类的类才能访问到这个属性。注:protected 与 internal的顺序不重要。

举个栗子吧:

程序集1:

public class A

{

protected internal string x="X";

}

public class D

{

  public string func()
     {

    A a = new A();

    return a.x;//OK,可以正确访问到

  }

}

程序集2:引用程序集1的dll

public class B:A

{

public string func()

{

    return x;//OK,可以正确访问到

}
}

public class C

{

public string func()

{

    A a= new A();

    //return a.x;//No,不可以访问到

}
}

public, protected, private, internal, protected internal简析的更多相关文章

  1. C#中public、private、protected、internal、protected internal (转载)

    在C#语言中,共有五种访问修饰符:public.private.protected.internal.protected internal.作用范围如下表:访问修饰符 说明public 公有访问.不受 ...

  2. c#public、private、protected、internal、protected internal修饰符及访问权限

    c#public.private.protected.internal.protected internal修饰符及访问权限 public 公有访问.不受任何限制. private 私有访问.只限于本 ...

  3. C#中五种访问修饰符作用范围 public、private、protected、internal、protected internal

    1.五种访问修饰符包括哪些? public.private.protected.internal.protected internal 2.五种访问修饰符的作用范围? public  :公有访问.不受 ...

  4. C# 成员默认访问权限(public、private、protected、internal)

    C# 成员默认访问权限(public.private.protected.internal) 来源 https://www.cnblogs.com/yezongjie/p/20181121Access ...

  5. Java 类、属性、方法修饰符 public、private、protected、default

    Java 中修饰类修饰符:public .default (默认) Java 中修饰类中属性.方法修饰符:public.private.protected.default (默认) 通过 IDEA 创 ...

  6. public,private,protected,以及不写时的差别

    作用域public,private.protected.以及不写时的差别 这四个作用域的可见范围例如以下表所看到的. 说明:假设在修饰的元素上面没有写不论什么訪问修饰符,则表示friendly.不使用 ...

  7. java语言中public、private、protected三个关键字的用法,重写和重载的区别。

    java语言中public.private.protected三个关键字的用法,重写和重载的区别. 解答: 作用域 当前类 同包 子类 其它 public √ √ √ √ protected √ √ ...

  8. 修饰符 public、 private 和 protected和区别

    TypeScript 可以使用三种访问修饰符(Access Modifiers),分别是 public.private 和 protected. public 修饰的属性或方法是公有的,可以在任何地方 ...

  9. 关于public、private、protected、internal

    1.private修饰符 private修饰符用于设置类或类成员的訪问权限仅为所属类的内部, private也被称为私有修饰符.某些时候须要訪问私有类成员时,可通过get和set訪问器读取或改动. 2 ...

  10. asp.net 修饰符介绍(关于public、private、protected、internal)

    1.private修饰符 private修饰符用于设置类或类成员的访问权限仅为所属类的内部,private也被称为私有修饰符.某些时候需要访问私有类成员时,可通过get和set访问器读取或修改. 2. ...

随机推荐

  1. C# 使用AutoResetEvent进行线程同步

    AutoResetEvent 允许线程通过发信号互相通信. 通常,当线程需要独占访问资源时使用该类. 线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号. 如果 AutoRe ...

  2. 转:linux下面/usr/local和opt目录有何区别

    /usr/local下一般是你安装软件的目录,这个目录就相当于在windows下的programefiles这个目录 /opt这个目录是一些大型软件的安装目录,或者是一些服务程序的安装目录 /opt ...

  3. javascript正则表达式控制input只能输入数字

    不能输入中文 <input type="text" name="textfield"  onkeyup="this.value=this.val ...

  4. sudo

    sudo的目的:为非根用户授予根用户的权限: 配置文件:/etc/sudoers visudo命令编辑修改/etc/sudoers配置文件 1.一般用户赋权设置: [root@localhost ~] ...

  5. Android 面试题(经典)

    1.Actvity的生命周期,生命周期中的onCreate与onResume有什么区别 Activity的生命周期有:onCreate,onStart,onRestart,onResume,onPau ...

  6. 面试题_48_to_65_Java 集合框架的面试题

    这部分也包含数据结构.算法及数组的面试问题 48) List.Set.Map 和 Queue 之间的区别(答案)List 是一个有序集合,允许元素重复.它的某些实现可以提供基于下标值的常量访问时间,但 ...

  7. BZOJ2429: [HAOI2006]聪明的猴子

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2429 题解:从某一点遍历n个点,且使最长边最短,就是MST了. 代码: #include< ...

  8. Selenium Tutorial (1) - Starting with Selenium WebDriver

    Starting with Selenium WebDriver Selenium WebDriver - Introduction & Features How Selenium WebDr ...

  9. 自定义ShareDialog视图

    1. share_item.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayou ...

  10. libogg.so fro android编译方法

    在网站下载源代码http://www.xiph.org/downloads/ 解压然后打开cygwin配置 CXX=arm-linux-androideabi-g++.exe LD=arm-linux ...