说白了

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. centos7 RabbitMQ部署

    一.RabbitMQ简单介绍在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务 ...

  2. Vulkan入门流程

    原文摘自Vulkan入门流程 Vulkan是Khronos Group(OpenGL标准的维护组织)开发的一个新API,它提供了对现代显卡的一个更好的抽象,与OpenGL和Direct3D等现有api ...

  3. anoconda 神经网络 相关操作

    1. conda 相关操作 建立新环境:conda crearte -n NewName python=版本(3.6) 激活环境:conda activate NewName 关闭环境:conda d ...

  4. SCRUM 12.17

    今天,我们的用户统计功能终于上线了!! 大家辛苦工作了许久.我们测试的用户统计功能效果模拟如下 还有一些好消息,比如,我们的应用在小米平台收到了崩溃的反馈报告. 这说明我们留下的一些BUG暴露了出来, ...

  5. 【Beta阶段】第五次Scrum Meeting!

    每日任务内容: 本次会议为第五次Scrum Meeting会议~ 由于本次会议项目经理召开时间依旧较晚,在公寓7层召开,女生参与了线上会议. 队员 昨日完成任务 明日要完成任务 刘乾 #167(未完成 ...

  6. js生成uuid代码

    function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0; i < 3 ...

  7. 第三次作业--导入excel表格(完整版)

    031302322 031302316 将教师排课表导入系统 使用powerdesigner设计数据库表格 设计概念模型 打开new -> Conceptual Data Model创建概念模型 ...

  8. 构建之法——Team & Scrum & MSF

        第五章(团队和流程)83-99  这一章主要介绍的是团队精神 那是不是说只要能组合在一起的就是组成了一个团队了?其实不然,软件团队有各种形式,适用于不同的人员和需求.适合自己的团队才能共赢! ...

  9. 第一个sprint与第二个sprint阶段总结

    总体: 在第一个sprint中,团队里的小伙伴都在积极努力的配合,基本按照流程做了一次Sprint,大家一块进行计划会议,一块估计任务工时,但是还是有一些意外的事情,这段时间大家都没什么精力放在这门上 ...

  10. canvas实现五子棋界面

    1.获取canvas画布 var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); ...