.NET Framework 平台构造基础
- CLR 公共语言运行库
执行给定编译代码单元所需的外部服务集合,它提供了一个定义明确的运行库层,可以被支持.NET的所有语言和平台所共享。
-
- 库
-
- mscoree.dll:公共对象运行库执行引擎
当用户程序引用一个程序集时,这个库将首先自动加载,然后由它负责将需要的程序集导入内存。
-
-
-
- 工作流程
-
-
- CTS 公共类型系统
CTS是一个正式的规范,它规定了类型必须如何定义才能被CLR承载。
-
- 类类型
这是OOP的基础,由成员和数据组成
-
-
- 特征
-
- 是否密封
- 是否实现接口
- 是具体的还是抽象的
- 可见性
- 语法
-
class Calc{……} |
-
- 接口类型
由抽象成员定义所组成的一个具名集合,通过特定的类或结构来实现。
-
-
- 语法
-
public interface IDraw{void Draw()} |
-
- 结构类型
可以看做是具有语义的轻量级类类型,适用于建模几何和数学数据
-
-
- 语法
-
struct Point{……} |
-
- 枚举类型
是一种便利的编程结构,用来组成名称/值对。
-
-
- 语法
-
enum CharacterType {Wizard = 100,Thief = 200} |
-
- 委托类型
等效于类型安全的C风格的函数指针。派生自System.MulticastDelegate类,而不是简单的指向原始内存地址的指针,为.NET事件架构提供了基础。
-
-
- 语法
-
delegate int BinaryOp(int x,int y); |
-
- 类型成员
类型成员是集合
-
-
- 组成
-
- 构造函数
- 终结器
- 静态构造函数
- 嵌套类型
- 操作符
- 方法
- 属性
- 索引器
- 字段
- 只读字段
- 常量
- 事件
- 可见性
-
- 公共的
- 私有的
- 受保护的
- 内建数据类型
-
CTS数据类型 | C#关键字 | CLI关键字 | 备注 |
System.Byte
|
byte | unsigned char | |
System.SByte
|
sbyte | signed char | |
System.Int16
|
short | short | |
System.Int32
|
int | int or long | |
System.Int64
|
long | _int64 | |
System.UInt16
|
ushort |
unsigned short
|
|
System.UInt32
|
uint |
unsigned int or unsigned long
|
|
System.UInt64
|
ulong |
unsigned _int64
|
|
System.Single
|
float | Float | |
System.Double
|
double | Double | |
System.Object
|
object | object^ | |
System.Char
|
char | wchar_t | |
System.String
|
string | String^ | |
System.Decimal
|
decimal | Decimal | |
System.Boolean
|
bool | Bool |
- CLS 公共语言规范
它清晰的描述了支持.NET的编译器必须支持的最小的和完全的特征集,可以被基于.NET平台的其他语言用统一的方式进行访问。
-
- 规则
-
- 规则1:CLS规则仅适用于类型中向定义它的程序集以外公开的部分。
- BCL 基础类库

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述