在C#中internal关键字是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#中internal关键字是啥意思?相关的知识,希望对你有一定的参考价值。

不要复制的答案,要自己的见解,长短无所谓,一句话也行。

internal修饰符可以用于类型或成员,使用该修饰符声明的类型或成员只能在同一程集内访问,接口的成员不能使用internal修饰符。

就是使用internal的类只能在同一个项目中使用,不能在别的项目中使用,比如你的解决方案中有两个项目,那么只能在其所在的一个使用,就像是不能在Dll中傅它,因为这样别人引用时就不能访问了。

扩展资料:

C语言的标准

起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。

这本书被 C语言开发者们称为K&R,很多年来被当作C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。

K&R C主要介绍了以下特色:

结构体(struct)类型

长整数(long int)类型

无符号整数(unsigned int)类型

把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =- 10,使得处理上产生混淆。

即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最 准要求,许多老旧的编译器仍然运行K&R C的标准。

1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。

1983年,美国国家标准协会(ANSI)成立了一个委员会X3J11,来制定 C语言标准。

1989年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-198"Programming Language C"。因为这个标准是1989年通过的,所以一般简称C89标准。有些人也简称ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。

1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990 - Programming languages -- C 。

因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。

1994年,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C89标准修订版,名叫ISO/IEC 9899:1990/Cor 1:1994 ,有些人简称为C94标准。

1995年,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C89标准修订版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity,有些人简称为C95标准。

C99标准

1999年1月,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C语言的新标准:ISO/IEC 9899:1999 - Programming languages -- C,简称C99标准。这是C语言的第二个官方标准。

参考资料来源:百度百科--C语言

参考资料来源:百度百科--C语言运算符

参考技术A 1楼的答案正确
我来补充一下,对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法。
比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能,这个DLL文件的程序就是一个程序集。
如果你记录日志的程序集是这么定义的
namespace LogerHelper

internal class aa

public void bb()

return "";



public class Write

public void WriteIn(string content)

class x = new aa();
x.bb();




当另一个项目引用了此DLL
它可以这么访问
LogerHelper.Write x = new LogerHelper.Write();
x.WriteIn("");

但不可以这么访问
LogerHelper.aa x = new LogerHelper.aa();
x.bb();

这就叫,只能在程序集中访问本回答被提问者采纳
参考技术B internal关键字是类型和类型成员的访问修饰符。内部成员只有在同一程序集中的文件内才是可访问的。internal 可访问域限定于类所在的程序内。 参考技术C 表示只能在程序集中访问的修饰符 参考技术D 1、public
访问不受限制。
2、protected
访问仅限于包含类或从包含类派生的类型。
3、internal
访问仅限于当前程序集。
4、protected internal
访问仅限于从包含类派生的当前程序集或类型。
5、private
访问仅限于包含类型。

6 可以看到 其实就是一种访问权限,仅限制于当前程序集。那么当前程序集是什么玩意,程序集是什么 ? —— 经由编译器编译得到的,供CLR(公共语言运行库(Common Language Runtime)是.net Framework 的库 ,而 程序集就是 .net Framework的基本组成部分 )进一步编译执行的那个中间产物,在WINDOWS系统中,它一般表现为·dll或者是·exe的格式,但是要注意,它们跟普通意义上的WIN32可执行程序是完全不同的东西,程序集必须依靠CLR才能顺利执行。
7 可以看到,换句话说就是 当前程序所有的 .dll 或者 .exe (或者说就是程序集)都可以访问,有个经典答案就是说当前工程。

这就是我的理解,也是新手。。。。

在C#中internal关键字是什么意思?

对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法。
比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能,这个DLL文件的程序就是一个程序集。
如果你记录日志的程序集是这么定义的:

namespace LogerHelper 
{
    internal class aa
    {
         public void bb()
         {
             return "";
         }
    }

    public class Write
    {
        public void WriteIn(string content)
        {
            class x = new aa();    
            x.bb();
        }
    }
}

 当另一个项目引用了此DLL,它可以这么访问:

LogerHelper.Write x = new LogerHelper.Write();
x.WriteIn("");

 但不可以这么访问:

LogerHelper.aa x = new LogerHelper.aa();
x.bb();

 

以上是关于在C#中internal关键字是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

在C#中internal关键字是什么意思?

c#中 new 这个关键字是啥意思

c#中的_Default关键字是啥意思

C#中的“var”是啥意思? [复制]

C# 中“internal”关键字的实际用途

C#中的virtula是啥?