黑马程序员技术交流社区
标题: 不是很明白internal修饰的成员的可访问范围 [打印本页]
作者: 昕☆Rainbow 时间: 2014-6-28 19:54
标题: 不是很明白internal修饰的成员的可访问范围
本帖最后由 昕☆Rainbow 于 2014-6-30 19:42 编辑
是同一个程序集中可以访问?程序集的概念是什么呢?
作者: 许庭洲 时间: 2014-6-28 20:52
1. 程序集是任何 .NET Framework 应用程序的基本构造块;
例如,在生成简单的 C# 应用程序时,Visual Studio 创建一个单个可移植可执行 (PE) 文件形式的程序集,明确地说就是一个 EXE 或 DLL。
2. 程序集可以包含一个或多个模块;
例如,计划较大的项目时,可以让几个各个开发人员负责单独的模块,并通过组合所有这些模块来创建单个程序集。
作者: 天佑の清清 时间: 2014-6-28 22:05
internal与public,private,protected都是访问权限修饰关键字,
它代表它所修饰的类只能在该类所在的程序集中其它类所引用,即在这个程序集中,
它相当于public,出了这个程序集,它就相当于private.
程序集Assembly包括一个或多个模块和资源文件的逻辑分组。它是可重用,安全性和版本控制的最小单位。
程序集就是我们运行编译后产生的dll文件或者exe文件。它里面所包含的MSIL中间代码会在执行的时候,被CLR的JIT编译器根据本特定机器的实际情况进行特定的进一步优化,从而编译成相应的机器码。
作者: Cacerine 时间: 2014-6-28 22:29
额,还没有学到这里,从百度找了一个答案,你可以看看,是否对你有帮助
对于一些大型的项目,通常由很多个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();
复制代码
这就叫,只能在程序集中访问
作者: SlssSilver 时间: 2014-6-29 00:51
internal,成员只能由定义它的程序集(项目)内部的代码访问.
protected,成员只能由类或派生类中的代码访问.
private,成员只能由类中的代码访问
public,公共访问权限,成员可以由任何代码访问.
作者: 昕☆Rainbow 时间: 2014-6-29 19:41
明白点了。。引用DLL文件也就是在开头写using吗?
作者: Cacerine 时间: 2014-6-30 00:10
本帖最后由 Cacerine 于 2014-6-30 00:11 编辑
方法是 “在解决方案管理器” - “解决方案”(或项目) 中的任意地方, 右键“添加引用”,“浏览”,选择你需要调用的dll文件,确定即可
添加完了引用,现在如何调用呢?
如果有命名空间则引入命名空间,比如你的y。dll里面,是a命名空间,有一个b类,然后有一个无参数静态方法c
那么调用方法就是a.b.c(),跟你普通的使用类是一样的
作者: liangdmaster 时间: 2014-6-30 18:06
嗯,我也补充一下知识
作者: 向晓伟 时间: 2014-6-30 22:32
涨知识了!
作者: 追梦无悔 时间: 2014-7-4 10:29
dll 或 exe
作者: 麦田怪圈 时间: 2014-7-7 18:14
路过学习了!
作者: 绿箭 时间: 2014-7-12 20:15
.netFramwork的类库和模块后缀是dll的文件
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |