4.3 命名空间和程序集

摘要:
命名空间对相关的类型进行逻辑分组。访问类型时,CLR需要知道类型的完整名称以及类型定义在哪个具体的程序集中。C#using指令允许为类型或命名空间创建别名。命名空间和程序集不一定相关:同一命名空间的类型可能在不同程序集中;同一程序集也可能包含不同命名空间。在MSDN中可以看到程序集以及命名空间using指令的范围限制为包含它的文件。using指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。usingSystem.Text并不能访问到System命名空间下的方法。
  • 命名空间对相关的类型进行逻辑分组。
  • C# using 指令指示编译器尝试为类型名称附加不同的前缀,直至找到匹配项。
  • CLR 对命名空间一无所知。访问类型时,CLR需要知道类型的完整名称以及类型定义在哪个具体的程序集中。
  • 编译器扫描引用的所有程序集,查找类型定义。如果找到,程序集信息和类型信息就嵌入生成的托管模块元数据中。
  • MSCorLib.dll 程序集包含了所有核心 Framework 类库(FCL)的定义。(如 Object, Int32, String 等)
  • 潜在问题:多个类型在不同命名空间重名。需要开发人员确保唯一性。
  • C# using指令允许为类型或命名空间创建别名。
    4.3 命名空间和程序集第1张
  • C# 编译器提供外部别名(extern alias)功能。
  • CLR 编译器在类型定义元数据表中添加的实际类型名称。
    4.3 命名空间和程序集第2张4.3 命名空间和程序集第3张

    • 命名空间和程序集不一定相关:同一命名空间的类型可能在不同程序集中;同一程序集也可能包含不同命名空间。

    • 在MSDN中可以看到程序集以及命名空间
      4.3 命名空间和程序集第4张



  • using 指令的范围限制为包含它的文件。
  • 创建 using 别名,以便更易于将标识符限定到命名空间或类型。 using 别名指令的右侧必须始终是一个完全限定类型,而与前面的 using 指令无关。
  • 创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。 using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。
    using System.Text 并不能访问到System命名空间下的方法。

免责声明:文章转载自《4.3 命名空间和程序集》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JAVA 获取类名,函数名安信可ESP-12F连接阿里云教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Postman无法正常启动解决办法

接下来主窗口背景米色加载和菜单栏加载和工作。系统WindowsServer2012R2,,Postman版本7.07,前面试过其他版本,6.5.3和7.06都不行。也试过其他办法:1.卸载postman;2.清理postman残留的配置文件。postman的文件都是放在用户文件下面。所以在Local和Roaming文件夹下查看,并删除postman文件夹。...

Spring通过MimeMessageHelper发送邮件,中文附件名出现乱码解决办法

1.设置系统值system。setProperty(“mail.mime.split-longparameters”,“false”);2.在这里,定义创建对象时的编码格式(utf-8):MimeMessageHelper=newMimeMessageHelper(mes,true,“utf-8”);3.其次,添加附件时,附件名称为helper。需要定义代码...

前端er们如何最快开发h5移动端页面?

因此,它总结了移动终端H5最快发展的最佳方案。web移动终端的发展应注重简化,以满足基本业务需求,设计应尽可能扁平化。前视图层angularjs或react作为框架,node作为中间层,js处理从后端接口获取的数据并操作渲染模板文件,这相当于在MVC中完成控制器层的工作。底层是数据库和后端。...

boost的下载和安装(windows版)

1 Introduction boost是一个准C++标准库,相当于STL的延续和扩展。它的设计理念类似于STL,它使用泛型来最大化重用。对于2boost的下载和安装,我们可以在官方boost网站上下载最新的boost版本。因为boost库可以像标准库一样在多个平台上运行,所以它只以源代码的形式正式提供。这是因为boost windows的安装版本不仅与处理...

selenium自动化之鼠标操作

,selenium为我们提供了一个处理此类事件的类——ActionChains。ActionChains可以模拟鼠标操作,例如单击、双击、右键单击、拖动等。鼠标移动时演示页面的截图:demo1.使用鼠标移动到WriteonOver按钮的顶部。python脚本如下:读取鼠标移动代码,首先定义浏览器驱动程序,最大化窗口,打开测试页面URL,定位到测试按钮顶部,定...

flutter vscode+第三方安卓模拟器

1.首先打开夜曲模拟器2.Win+R,选择cmd,在第三方模拟器安装目录的bin目录下输入夜曲模拟器,然后运行命令:nox_Adb.execonnect127.0.0.1:620013。打开项目终端的vscode并建立连接:adbconnect127.00.1:62001(夜神模拟器的默认端口)4。查看连接:adbdevices或不使用第三方模拟器:1.打开...