做flash网站遇到函数新手学习做网站
news/
2025/10/4 7:23:43/
文章来源:
做flash网站遇到函数,新手学习做网站,做淘宝客网站需要多大的数据库,wordpress桌面客户端文章目录 22.1 引用其他程序集22.2 命名空间22.2.1 命名空间名称22.2.2 命名空间的补充22.2.3 命名空间跨文件伸展22.2.4 嵌套命名空间 22.3 using 指令22.3.1 using 命名空间指令22.3.2 using 别名指令22.3.3 using static 指令 22.4 程序集的结构22.5 程序集标识符22.6 强命名… 文章目录 22.1 引用其他程序集22.2 命名空间22.2.1 命名空间名称22.2.2 命名空间的补充22.2.3 命名空间跨文件伸展22.2.4 嵌套命名空间 22.3 using 指令22.3.1 using 命名空间指令22.3.2 using 别名指令22.3.3 using static 指令 22.4 程序集的结构22.5 程序集标识符22.6 强命名程序集*22.7 私有程序集的部署*22.8 共享程序集和 GAC*22.9 配置文件*22.10 延迟签名* 22.1 引用其他程序集
在许多项目中会使用其他程序集的类或类型而不仅仅是自己声明的。这些程序集称为类库可能来自 BCL 或第三方供应商也可以是自己创建的。通常这些程序集文件的名称以 .dll 扩展名结尾而不是 .exe。 图22.1 SuperLib 源代码和结果程序集 假设还要写一个名为 MyWidgets 的程序而且想使用 SquareWidget 类。在代码中没有声明类 SquareWidget使用的是定义在 SuperLib 中的类。在编译程序时需要给编译器添加该引用。 在 Rider 中右键项目选择“添加” - “引用”选择下方的“添加自”按钮找到对应的程序集即可。 图22.2 Rider 中添加程序集 添加引用后即可编译 MyWidgets。 图22.3 引用另一个程序集 mscorlib 库
有一个类库几乎先前的每个示例中都使用了它即包含 Console 类的类库。该类库被定义在 mscorlib 程序集中的 mscorlib.dll 文件里。mscorlib 包含 C# 类型及大部分 .NET 语言基本类型的定义在编译时它必须被引用因此不显示放在引用目录中。
因此算上 mscorlib图 22.3 的过程看起来更像是图 22.4 描述的那样。 图22.4 引用类库 潜在的问题
若想扩展上述类的能力使用名为 CircleWidget 的类并将其定义在 UltraLib 的程序集中。MyWidgets 的源代码如下创建一个 SquareWidget 对象和一个 CircleWidget 对象分别定义在 SuperLib 和 UltraLib 中。 类库 UltraLib 的源代码如下所示并将 UltraLib 编译成 dll加入到项目引用列表中。注意除了 CircleWidget 类外还声明了一个名为 SquareWidget 的类。 由于两个库都含有名为 SquareWidget 的类编译时会产生错误信息因为编译器不知道使用 SquareWidget 类的哪个版本。 图22.5 由于程序集 SuperLib 和 UltraLib 都含有名为 SquareWidget 的类声明编译器不知道该实例化哪一个 22.2 命名空间
命名空间可视为一个字符串加在类名或类型名前面通过点分隔。命名空间名、分隔点、类名三者共同组成类的完全限定名。命名空间是共享命名空间名的一组类和类型。 图22.6 命名空间是共享同一命名空间名的一组类型定义 使用命名空间将一组类型组织在一起并命名。 例如创建 MyCorp.SuperLib 命名空间并在其中声明 SquareWidget 类。 当 MyCorp 公司提供更新的程序集时可以按照如下方式修改。 如果 UltraLib 程序集也被使用那么编译过程下。 图22.7 带命名空间的类库 22.2.1 命名空间名称
命名空间名称可以是任何有效标识符区分大小写。命名空间名称可以包含任意数量的句点符号用于将层次化组织类型。 表22.1 来自 BCL 的命名空间示例 使用命名空间要点如下
以公司名称开头。在公司名之后跟着技术名称。不要与类或类型名称相同。
22.2.2 命名空间的补充
命名空间内每个类型名必须有别于所有其他类型。命名空间内的类型称为命名空间的成员。源文件可以包含任意树木的命名空间声明可以顺序也可以嵌套。 图22.8 一个源文件中的多个命名空间 22.2.3 命名空间跨文件伸展
命名空间是非封闭的可以在源文件后面或其他源文件中使用。 图22.9 命名空间可以跨源文件并编译成单个程序集 22.2.4 嵌套命名空间 文本嵌套 将命名空间的声明放在一个命名空间声明体内部。 分离的声明 为嵌套命名空间创建单独的声明但必须在声明中使用完全限定名。 图22.10 声明嵌套命名空间的两种形式是等价的 22.3 using 指令
using 指令包含 2 大作用
using 命名空间指令。using 别名指令。
关于 using 指令的要点如下
必须放在源文件的顶端在任何类型声明之前。应用于当前源文件中的所有命名空间。
22.3.1 using 命名空间指令
通过在源文件顶端放置 using 命名空间指令以避免使用长名称。 下面的代码使用 using 命名空间指令来描述该代码来自 System 命名空间的类或其他类型。 22.3.2 using 别名指令 using 别名指令允许起一个别名给
命名空间。命名空间捏的一个类型。 前两行告诉编译器Syst 是 命名空间 System 的别名SC 是类 System.Consle 的别名。Main 的第一条语句使用命名空间 System 的别名第二条语句使用完全限定名第三条语句使用类的别名。
22.3.3 using static 指令
使用 using static 指令引用给定命名空间中的特定类、结构体或枚举以不带任何前缀地进行访问。 using static 指令指定的类本身可以不是静态的类中非静态类型成员不会被 using static 指令导入。
22.4 程序集的结构
程序集本身不包含本地机器代码而是包含公共中间语言代码。此外还包含即时编译器JIT在运行时将 CIL 转换为本机代码所需要的一切信息。程序集的文件扩展名通常为 .exe 或 .dll。
单文件程序集
大部分程序集由一个单独的文件构成 程序集清单。 程序集标识符。组成程序集的文件列表。一个指示程序集中内容在哪里的地图。关于引用的其他程序集的信息。 类型元数据。 包含程序集中定义的所有类型的信息。 CIL 中间代码。 资源部分。 该部分可选。可以包含图形或语言资源。 图22.11 单文件程序集的结构 多文件程序集
程序集代码文件称为模块。尽管大部分程序集由单个文件构成但有些程序集含有多个文件。对于有多个模块的程序集一个文件是主模块其他为次要模块。
主模块含有程序集的清单和次要模块的引用。次要模块的文件名以扩展名 .netmodule 结尾。多文件程序集被视为一个单元一起部署并一起定版。 图22.12 多文件程序集 22.5 程序集标识符
在 .NET 框架中程序集的文件名相对不重要更重要的是程序集的标识符其包含 4 个组成部分 简单名称。 不带文件扩展名的文件名也称为程序集名或友好名称。 版本号。 形式为 MajorVersion.MinorVersion.Build.Revision例如2.0.35.9。 文化信息。 一个由 2 ~ 5 个字符组成的字符串代表一种语言、国家或地区。例如没过使用的英语文化名是 en-US德国使用的德语文化是de-DE。 公钥。 由程序集公司生产的唯一字符串128 字节。 图22.13 清单中程序集标识符的组成部分 图22.14 关于程序集标识符的术语 22.6 强命名程序集*
22.7 私有程序集的部署*
22.8 共享程序集和 GAC*
22.9 配置文件*
22.10 延迟签名*
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926823.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!