说白了

internal 修饰的东西只能在本程序集(当前项目)内被使用。

protected internal 修饰的属性/方法 可以在其他项目中,被派生类使用

例如有两个项目app1和app2.

app1是启动项目,而app2只是一个类库

/*项目app2*/

namespace app2

{

internal class cInternal  //该类只能在app2中使用(整个类都internal,相当于所有的属性也全都internal了)

{

    public int a;//只有app2中可以使用

    internal int b;//同上,只有app2中可以使用

}

public class vInternal  //该类可以在app1中使用(只要引用app2即可)  但是在app2之外的其他项目中不能使用此类中被internal修饰的属性/方法

{

    internal int a;//只能在app2中使用

    protected internal int b;//在app2中任意使用,在app1中不可以直接使用,但是可以被app1中的继承自该类的类使用。

    public int c;//app1 app2中任意使用

    protected internal void Display()//在app2中任意使用,在app1中不可以直接使用,但是可以被app1中的继承自该类的类使用。

    {Console.WriteLine("Hello protected Internal");}

 }

}//namespace app2

/*项目app1*/

using app2;

namespace app1

{

    class app1()

    {

        app2.cInternal  InternalClass = new app2.cInternal();//!!! ERROR !!! - cInternal被internal修饰,只能在app2中使用

        app2.vInternal  InternalVar = new app2.vInternal ();//OK - vInternal 被public修饰,能在任何地方使用

        InternalVar.a = ;//!!! ERROR !!! - 被internal修饰,只能在app2中使用

        InternalVar.b = ;//!!! ERROR !!! - 被protected internal修饰,不能在外部项目中直接使用。

        InternalVar.c = ;//OK

        InternalVar.Display();//!!! ERROR !!! - 被protected internal修饰,不能在外部项目中直接使用。

     }//classAPP1

    class InheritFromInternal:app2.vInternal//继承了vInternal,于是可以使用vInternal中被protected internal修饰的属性

    {

        base.a = ;//!!! ERROR !!! - 被修饰为internal的属性只能在app2中使用.

        base.b = ;//OK - 被修饰为protected internal的属性可以被派生类使用.

        base.Display();//OK - 被修饰为protected internal的属性可以被派生类使用.    

    }//classInheritFromInternal

}//namespace app1

internal in C#的更多相关文章

  1. myeclipse 内存不够用报错PermGen space 和 An internal error has occurred.

    最近项目中又增加了新的模块,项目的代码又多了不少.运行的时候总是报如下错误 Exception in thread "http-apr-80-exec-6" java.lang.O ...

  2. swift 中关于open ,public ,fileprivate,private ,internal,修饰的说明

    关于 swift 中的open ,public ,fileprivate,private, internal的区别 以下按照修饰关键字的访问约束范围 从约束的限定范围大到小的排序进行说明 open,p ...

  3. idea报错:error java compilation failed internal java compiler error

    idea下面报如下问题 error java compilation failed internal java compiler error 解决办法:Setting->Compiler-> ...

  4. AutoMapper对internal访问级别属性的映射

    最近在使用DDD重新搭建公司内部OA的架构,具体情况搭好了应该会写一下,这里说的是今天遇到的问题. 先简单说一下相关的几个部分: 1.聚合.聚合分成了两个模块:一个包含审批单据等估计至少今年不会怎么变 ...

  5. Tcl internal variables

    Tcl internal variables eryar@163.com 在Tcl中内置了一些变量,并赋予了一定的功能.内置变量列表如下: 变量名称 功能描述 argc 指命令行参数的个数. argv ...

  6. c++ builder 2010 错误 F1004 Internal compiler error at 0x9740d99 with base 0x9

    今天遇到一个奇怪的问题,拷贝项目后,在修改,会出现F1004 Internal compiler error at 0x9740d99 with base 0x9 ,不管怎么改,删除改动,都没用,关闭 ...

  7. ORA-00600: internal error code, arguments: [4194]

    使用PlateSpin复制出来的一数据库服务器(Oracle 10g)在启动数据库实例时遇到"ORA-00600: internal error code, arguments: [4194 ...

  8. MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL

    MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL   是因为目标板的芯片处于休眠 ...

  9. HTTP 错误 500.21 - Internal Server Error 解决方案

    不久前重新安装了Windows7,在安装了VS2010 开发平台之后,将网站发布到IIS,访问发生如下错误: HTTP 错误 500.21 - Internal Server Error处理程序“Ni ...

  10. 【Android Studio】android Internal HTTP server disabled 解决

    报错:Cannot start internal HTTP server. Git integration, JavaScript debugger and LiveEdit may operate ...

随机推荐

  1. 【Orleans开胃菜系列2】连接Connect源码简易分析

    [Orleans开胃菜系列2]连接Connect源码简易分析 /** * prism.js Github theme based on GitHub's theme. * @author Sam Cl ...

  2. 【RDB】MariaDB 之事务、复制、集群

    目录 简介 安装启动 权限 事务 脏读.不可重复读.幻读 MVCC 复制 异步复制 半同步复制 GTID复制 集群(Galera) 配置 监控(Zabbix) 简介 环境: CentOS 7.4.17 ...

  3. python list的一个面试题

    面试题''' 一个list,里面的数字偶数在左边,奇数在右边,不借助其他列表 ''' def userlist(add_list): if type(add_list)==list: if len(a ...

  4. 爱普生L313彩色打印相片

    操作环境: windows 和MAC 一.普通打印(默认选项) 1.爱普生L313 普通默认打印为快速不清晰打印. 2.以上打印效果出来图片比较快速出图,但是清晰度不够 二.照片打印设置 1.照片设置 ...

  5. 12.22daily_scrum

    今天是我们小组M2阶段开始一周结束,各项工作进入一个阶段性的总结过程,悬浮窗的设计也已经告一段落进入调试的阶段,新的工作任务有了添加,即滑锁密码的加入,更好地加深了用户体验性,软件的可用性也进一步加强 ...

  6. 【Alpha】第四次Scrum meeting

    今天任务一览: 姓名 今日完成任务 所耗时间 刘乾 配置好了所有物理实验的通配模板,为服务器配置了latex中文环境,设置了一些常用字体. Issue链接:https://github.com/bua ...

  7. 《Linux内核设计与实现》第四周读书笔记——第五章

    <Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...

  8. 实训六(Cocos2dx游戏分享到微信朋友圈----AppID的获取)

    考虑把游戏分享到微信朋友圈,前面的博文已经写到,shareSDK是一个很好的选择,但是学习了几天时间,遇到了很多问题,与其在一棵树上吊死,还不如退一步海阔天空,先暂时放一放,于是我考虑了一下既然是分享 ...

  9. Book Review 《构建之法》-2

    -敏捷流程包括了几大原则:Backlog.burn-down.Sprint.Scrum. 敏捷开发注重个人之间的交流,提倡尽早的交付有价值的软件满足顾客的需求, 在开发过程中不断与客户进行交互,变化. ...

  10. win10下装上virtualbox 以及在virtualbox上装上 ubuntu 12.04

    首先要下载virtual 在win10下可能第一步你就遇到了麻烦 首先刚开始我装的是最新版本的virtualbox 5.0.24.8355 (直接百度就可搜到) 然后可以按照这个教程 http://j ...