A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 昕☆Rainbow 于 2014-6-30 19:42 编辑

是同一个程序集中可以访问?程序集的概念是什么呢?

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

12 个回复

倒序浏览
1. 程序集是任何 .NET Framework 应用程序的基本构造块;
   例如,在生成简单的 C# 应用程序时,Visual Studio 创建一个单个可移植可执行 (PE) 文件形式的程序集,明确地说就是一个 EXE DLL
2. 程序集可以包含一个或多个模块;
   例如,计划较大的项目时,可以让几个各个开发人员负责单独的模块,并通过组合所有这些模块来创建单个程序集。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
internal与public,private,protected都是访问权限修饰关键字,
它代表它所修饰的类只能在该类所在的程序集中其它类所引用,即在这个程序集中,
它相当于public,出了这个程序集,它就相当于private.
程序集Assembly包括一个或多个模块和资源文件的逻辑分组。它是可重用,安全性和版本控制的最小单位。
程序集就是我们运行编译后产生的dll文件或者exe文件。它里面所包含的MSIL中间代码会在执行的时候,被CLR的JIT编译器根据本特定机器的实际情况进行特定的进一步优化,从而编译成相应的机器码。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
额,还没有学到这里,从百度找了一个答案,你可以看看,是否对你有帮助
对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法。
比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能,这个DLL文件的程序就是一个程序集。
如果你记录日志的程序集是这么定义的
  1. namespace LogerHelper
  2. {
  3.     internal class aa
  4.     {
  5.          public void bb()
  6.          {
  7.              return "";
  8.          }
  9.     }

  10.     public class Write
  11.     {
  12.         public void WriteIn(string content)
  13.         {
  14.             class x = new aa();   
  15.             x.bb();
  16.         }
  17.     }
  18. }
复制代码

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

但不可以这么访问
  1. LogerHelper.aa x = new LogerHelper.aa();
  2. x.bb();
复制代码

这就叫,只能在程序集中访问

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
internal,成员只能由定义它的程序集(项目)内部的代码访问.
protected,成员只能由类或派生类中的代码访问.
private,成员只能由类中的代码访问
public,公共访问权限,成员可以由任何代码访问.

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
Cacerine 发表于 2014-6-28 22:29
额,还没有学到这里,从百度找了一个答案,你可以看看,是否对你有帮助
对于一些大型的项目,通常由很多个D ...

明白点了。。引用DLL文件也就是在开头写using吗?
回复 使用道具 举报
本帖最后由 Cacerine 于 2014-6-30 00:11 编辑
昕☆Rainbow 发表于 2014-6-29 19:41
明白点了。。引用DLL文件也就是在开头写using吗?

方法是 “在解决方案管理器” - “解决方案”(或项目) 中的任意地方, 右键“添加引用”,“浏览”,选择你需要调用的dll文件,确定即可
添加完了引用,现在如何调用呢?
如果有命名空间则引入命名空间,比如你的y。dll里面,是a命名空间,有一个b类,然后有一个无参数静态方法c
那么调用方法就是a.b.c(),跟你普通的使用类是一样的

点评

懂了,谢谢!  发表于 2014-6-30 19:42
回复 使用道具 举报
嗯,我也补充一下知识
回复 使用道具 举报
Cacerine 发表于 2014-6-30 00:10
方法是 “在解决方案管理器” - “解决方案”(或项目) 中的任意地方, 右键“添加引用”,“浏览”,选 ...

涨知识了!
回复 使用道具 举报
dll 或 exe
回复 使用道具 举报
路过学习了!
回复 使用道具 举报
.netFramwork的类库和模块后缀是dll的文件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马