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