C#介绍
特点:
- 通用性语言
- 类型安全
- 面向对象
目标:生产力
- 简洁性
- 表达力
- 高性能
面向对象
面向对象的三大特性:封装 继承 多态
C#的面向对象特性:
统一的类型系统
1)类型
2)共同的基类 object
类和接口
1) Class
2) Interface
属性(Property)、方法(Method)、事件(Event)
1) 唯一一种函数成员(Function Member):方法(Method)
2) 方法还包括:属性(Property)和事件(Event),还有其它的
3) 属性(Property)
4) 事件(Event)
函数式编程
1)C# 主要是一种面向对象的语言,但是也借用了不少函数式编程的特性
2)函数可以当作值来对待
3)委托 Delegate
4)支持纯(purity)模式
5)避免使用值可变的变量
类型安全
1)C#主要来说是类型安全的
2)静态类型 Static Typing
3)动态类型 dynamic
4)强类型 Strongly Typed language
内存管理
1)依赖于运行时来执行自动内存管理
2)CLR:Common Language Runtime(公共语言运行时)
3)GC:Garbage Collector(垃圾收集器)
4)C#没有消灭指针,通常情况下不需要使用指针,用unsafe
平台支持
1)原来C#主要是在Windows上面运行
2)现在可以在所有的平台上运行 Windows Mac Linux iOS Android
3).NET Core
CLR简介
1).NET/.NET Core的核心就是CLR:Common Language Runtime
2)CLR和语言无关
3)C#是一种托管语言
- 会被编译成托管代码(IL:Intermediate Language)
- CRL把IL转化为机器(x64,x86)的原生代码
- JIT(Just-In-Time)编译
- Ahead-of-Time编译
- 托管代码的容器:Assembly 或 Portable Executable
- .exe 或 dll
- 包含 IL 和 类型信息(metadata)
4)IIdasm
支持C#的框架
- .NET Framework
- .NET Core
- Unity
- Xamarin
- UWP
- WinRT
- Windows Phone
- XNA
- Silverlight
- .NET Micro Framework
- Mono
- Sql Server
C#简史
安装环境
.NET Core SDK
一个IDE
- Visual Studio
- Visual Studio Code
- Jetbrains Rider
- Visual Studio for Mac
- LinqPad
.NET Core 和 .NET
.NET Core
编译
- C#编译器把.cs结尾的源码文件编译成Assembly。
- Assembly是.NET Core里的包装和部署的单元。
- Assembly可以是应用程序,也可以是库。 .exe .dll