见过这样的修饰符,但是没有仔细考虑过,今天做一个小练习。

先给出一个链接,别人在网上讨论的:http://wenku.baidu.com/view/4023f65abe23482fb4da4cfe.html

1.本类中访问的情况:

2.子类中访问的情况:(这是在同一命名空间中的,所以internal修饰的是可以访问的)

3.在同一命名空间下,但是在其它的类中的访问情况:(由于是在同一命名空间,internal和protected internal的作用没什么区别)

4.在另外的项目中,也就是命名空间不同的访问情况:

5.还有一种情况是,在另外的命名空间中,在TestA子类中的访问情况:

由上面的几个例子可以看出,internal和protected internal主要的区别如下:

1) 命名空间相同的时候,protected internal=internal;

2) 命名空间不同的时候,protected internal=protected;

也就是说protected internal用到的场合要比internal广泛。这在Jeffrey Richter的《CLR via C#》中有相关的描述:(P142 第三版)

修饰符从限制最大(private)到限制最小(public)的排序:

private

protected

internal                     成员只能由定义程序集中的方法访问

protected internal    成员可由任何嵌套类型、任何派生类型(不管在什么程序集)或者定义程序集中的任何方法访问

public

protected internal修饰符的更多相关文章

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

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

  2. 简述public private protected internal修饰符的访问权限

    public 关键字是类型和类型成员的访问修饰符.公共访问是允许的最高访问级别.对访问公共成员没有限制. protected 关键字是一个成员访问修饰符.受保护成员在它的类中可访问并且可由派生类访问. ...

  3. 简述 private、 protected、 public、 internal 修饰符的访问权限

    简述 private. protected. public. internal 修饰符的访问权限. private : 私有成员, 在该类的内部才可以访问. protected : 保护成员,该类内部 ...

  4. 解析Visual C# 7.2中的private protected访问修饰符

    去年12月份,随着Visual Studio 2017 Update 15.5的发布,Visual C#迎来了它的最新版本:7.2. 在这个版本中,有个让人难以理解的新特性,就是private pro ...

  5. [译]C# 7系列,Part 5: private protected 访问修饰符

    原文:https://blogs.msdn.microsoft.com/mazhou/2017/10/05/c-7-series-part-5-private-protected/ C#有几个可访问性 ...

  6. Java 中的 protected 访问修饰符你真的了解吗?

    protected Java 中的 protected 访问修饰符 总结 在同一个包中,类中 protected 或 default 修饰的属性或方法可以在类外被其对象 (实例) 外部访问,也可以被子 ...

  7. Java基础——protected访问修饰符探讨

    Java基础——protected访问修饰符探讨 根据官方说法:(如图) protected修饰符是可以修饰其他包中的子孙类的,但是我做了个实验,结果发现了一个有趣的现象! 具体请往下看: packa ...

  8. 简述 private、protected、 public、 internal修饰符的访问权限

    1.private: 私有的,只能在此类中访问 2.protected: 受保护的,只能在此类及其继承类中访问 3.public: 公开的,没有访问限制 4:internal: 内部的,只能在当前程序 ...

  9. 关于public private protected访问修饰符

    这个似乎都是老生常谈了,特别是找工作第一轮笔试的时候很爱考这些,再罗列一次,特别要注意继承的情况:     默认状态:即是不加修饰符的时候,所谓的default状态,在类内部可以被访问,在相同的包下面 ...

随机推荐

  1. iOS 实现进度条(progress)

    #import <UIKit/UIKit.h> @interface ZSDProgressView : UIView { UIView *progressView;//进度view } ...

  2. Linux中的特殊权限粘滞位(sticky bit)详解

    Linux下的文件权限 在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问.最为我们熟知的一个文件或目录可能拥有三种权限,分别是读.写.和执行操作, ...

  3. Shodan!

    Shodan! 简介 首先先介绍一下Shodan CNNMoney的一篇文章写道,虽然目前人们都认为谷歌是最强劲的搜索引擎,但Shodan才是互联网上最可怕的搜索引擎. 与谷歌不同的是,Shodan不 ...

  4. 转: 跨终端Web之Hybrid App

    转:  http://www.infoq.com/cn/articles/hybrid-app 编者按:InfoQ开设新栏目“品味书香”,精选技术书籍的精彩章节,以及分享看完书留下的思考和收获,欢迎大 ...

  5. itunes connect提交app教程

    .打开itunes connect登陆之后,选择Manage Your Apps,再选Add New App: .填写项目相关信息,不知道怎么填的点击问号查看: Bundle ID Suffix需要和 ...

  6. How to Use Rsync to Sync New or Changed/Modified Files in Linux

    As a system administrator or Linux power user, you may have probably come across or even on several ...

  7. SQLSERVER数据库中的 时间函数

    一.sql server日期时间函数 Sql Server中的日期与时间函数 1.  当前系统日期.时间 select getdate() 2. dateadd  在向指定日期加上一段时间的基础上,返 ...

  8. Warning: session_start() [function.session-start]: Cannot send session cookie解决办法

    在很多时间使用了session就会出来如下提示了, Warning: session_start() [function.session-start]: Cannot send session coo ...

  9. Swift 概述及Swift运算符和表达式

    Swift  是用于设计 iOS 及 Mac OS X 应用的一门新 语言. Swift 特点 •   Swift  保留了 C  与 Objective-C 的优点,并摒弃 其为了兼容 C  语言所 ...

  10. iOS在照片上添加水印

    在做项目的时候我们需要将拍摄的照片做上标记防止图片被他人盗用,所以这就需要在照片的上面加上水印,以表示此照片的独一无二. 加水印不是要在上面添加上几个Label,而是我们要把字画到图片上成为一个整体. ...