C#的面向对象特性
- 类和接口
- Class
- Interface
属性(Property)、方法Method,事件Event
唯一一种函数成员Function Member:方法Method
方法还包括:属性Property和事件Event,还有其他的
属性Property
事件Event
C#主要是一种面向对象的语言,但是也借用了不少函数式编程的特性
- 函数可以当做值来对待
- 委托Delegate
支持纯purity模式
- 避免使用值可变的变量
类型安全C#主要来说是类型安全的
- 静态类型Static Typing
- 动态类型dynamic
- 强类型Strongly Typed language
存储管理
- 依赖运行时来执行自动内存管理
- CLR:Common Language Runtime(公共语言运行时)
- GC:Garbage Collector(垃圾收集器)
- C#没有消灭指针
- 通常情况下不需要使用指针
- Unsafe
CLR简介
- .NET/.NET Core的核心就是CLR:Common Language Runtime
- CLR和语言无关
- C#是一种托管语言
- 会被编译成托管代码(IL:Intermediate Language)
- CLR会把IL转化为机器(x64,x86)的原生代码
- JIT(Just-In-Time)编译
- Ahead-of-Time编译
- 托管代码的容易:Assembly或Portable Executable
- .exe或dll
- 包含IL和类型信息(metadata)
- lldasm