13.1 命名空间作用
命名空间用于组织代码,避免命名冲突。
1 | namespace Company.Project.Module |
使用命名空间
1 | // 引入命名空间 |
13.2 嵌套命名空间
传统写法
1 | namespace Company |
C# 10+ 简化写法
1 | namespace Company.Project.Module; |
13.3 using 别名
解决命名冲突
1 | using IO = System.IO; |
类型别名
1 | using StringList = System.Collections.Generic.List<string>; |
13.4 全局 using(C# 10+)
全局引入
1 | // GlobalUsings.cs(自动应用到所有文件) |
隐式 using
1 | <!-- .csproj 文件中 --> |
13.5 程序集概念
什么是程序集
- 编译输出的
.dll或.exe文件 - 包含 IL 代码、元数据、清单
- 是部署和版本控制的基本单元
程序集类型
1 | MyApp.exe # 可执行程序集 |
13.6 引用程序集
项目引用
1 | <!-- .csproj 文件 --> |
NuGet 包引用
1 | # 命令行 |
程序集引用
1 | <ItemGroup> |
13.7 InternalsVisibleTo
内部可见性
1 | // AssemblyInfo.cs |
13.8 程序集信息
设置程序集属性
1 | // AssemblyInfo.cs |
.csproj 方式
1 | <PropertyGroup> |
13.9 本章小结
- 命名空间组织代码,避免冲突
using引入命名空间,支持别名- C# 10+ 支持文件范围命名空间和全局 using
- 程序集是
.dll或.exe文件 - 通过项目引用、NuGet 引用其他程序集
InternalsVisibleTo允许友元程序集访问 internal
练习题
- 创建嵌套命名空间并定义类
- 使用 using 别名解决命名冲突
- 添加 NuGet 包并使用
- 以下代码能否编译?
1
2
3
4namespace A.B;
class C { }
namespace A.B;
class D { }