1.C#是什么

C#是微软公司开发的一种面向对象面向组件且类型安全的高级程序设计语言,它运行于.NET Framework和.NET Core平台。它是.Net框架重要组成部分,用于编写.Net应用程序。

cs架构设计模式是什么 cs架构一般用什么语言_c#

 C#(发音“C sharp”)是微软.NET的首席架构师安德尔斯·海尔斯伯格(Anders Hejlsberg)倾尽心血的精品之作。

C#源于C和C++语言,它既参考了Java的单继承特性和语法,又借鉴了Delphi与COM(组件对象模型)是直接集成的特点,已经学会C、C++、Java 和 JavaScript 程序员可以很快上手C#。

2..NET体系结构

.NET是一个开发平台,具有用于构建Web移动桌面游戏物联网微服务等应用程序的工具和库。

起初.Net技术体系只有.NET Framework,虽然.net可以支持多语言,但是.NET Framework只能局限于在windows平台上使用,不能跨平台。这个缺点让.net体系逐步落后于主流技术的发展潮流。

后来为了实现跨平台,微软重写了CLR,开发了.NEF Core。.NEF Core支持Windows、Linux、macOS上开发ASP.NET和控制台应用,可以实现在云计算下的服务器端跨平台开发

Xamarin专注于为Andorid、iOS等主流移动平台提供基于Mono实现的.NET开发解决方案,以及开发工具和类库。

cs架构设计模式是什么 cs架构一般用什么语言_.net_02

2.1 .NET Framework

.NET Framework:.NET框架是一个支持跨语言的开发和执行环境,它可以让开发人员快速创建Web应用程序、Web服务和Window桌面程序。

下面汇总了.NET框架版本:

框架版本

发行日期

最后支持时间

.NET Framework 4.0

April 12, 2010

January 12, 2016

.NET Framework 4.5

August 15, 2012

January 12, 2016

.NET Framework 4.5.1

October 17, 2013

January 12, 2016

.NET Framework 3.5 SP1

November 18, 2008

October 10, 2028

.NET Framework 4.5.2

May 05, 2014

April 26, 2022

.NET Framework 4.6

July 20, 2015

April 26, 2022

.NET Framework 4.6.1

November 30, 2015

April 26, 2022

.NET Framework 4.6.2

August 02, 2016

.NET Framework 4.7

April 05, 2017

.NET Framework 4.7.1

October 17, 2017

.NET Framework 4.7.2

April 30, 2018

.NET Framework 4.8

April 18, 2019

.NET 5.0

September 14, 2021(持续更新)

.NET 6.0

September 14, 2021(持续更新)

2.2 .NET Core

.NET Core:.NET Core是一个支持WindowsLinux macOS开发Web和控制台程序的跨平台软件框架。它具有免费开源托管的特点,是微软在未来重点发展的开源软件平台。

下面汇总了.NET Core版本:

.Net Core版本

版本

发行日期

最后支持时间

.NET Core 1.0

May 14, 2019

June 27, 2019

.NET Core 1.1

May 14, 2019 

June 27, 2019

.NET Core 2.0

July 10, 2018

October 01, 2018

.NET Core 2.1

August 19, 2021

August 21, 2021

.NET Core 2.2

November 19, 2019

December 23, 2019

.NET Core 3.0

February 18, 2020

March 03, 2020

.NET Core 3.1

September 14, 2021

December 03, 2022

.NET 5.0

September 14, 2021(持续更新)

.NET 6.0

September 14, 2021(持续更新)

2.3 XAMARIN

Xamarin基于Mono实现为移动平台提供.NET开发解决方案,适用于iOS、Android、Universal Windows Platform、Watch OS、tvOS和Mac App平台。

3.类型和变量

分类

C#的变量可以分为值类型引用类型,值类型可以划分简单类型、枚举类型和结构类型;而

引用类型包括类型、接口类型、数组类型和委托类型。

值类型和引用类型的区别

值类型和引用类型最重要的区别是内存分配空间的操作。值类型的变量直接存储到内存的Stack栈中,由系统自动释放资源,效率比较高。引用类型初始化后会被分配到GC Heap托管堆上,托管堆上分配操作是由GC来管理。

cs架构设计模式是什么 cs架构一般用什么语言_cs架构设计模式是什么_03

 
4.版本特色

(1)C# 1.0 特性

  • 面向对象特性,支持类类型
  • 结构
  • 接口
  • 事件
  • 属性,类的成员
  • 委托,一种引用类型,表示对具有特定参数列表和返回类型的方法的引用
  • 表达式、语句、操作符
  • 特性,为程序代码添加元数据或声明性信息,运行时,通过反射可以访问特性信息
  • 字面值,区别常量,常量是和变量相对的

(2)C# 2.0 特性

  • 泛型
  • 部分类型
  • 匿名方法
  • 迭代器
  • 可空类型
  • Getter / setter单独可访问性
  • 方法组转换(代表)
  • 委托、接口的协变和逆变
  • 静态类
  • 委托推断,允许将方法名直接赋给委托变量

(3)C# 3.0 特性

  • 隐式类型局部变量
  • 对象和收集初始化器
  • 自动实现的属性
  • 匿名类型
  • 扩展方法
  • 查询表达式
  • Lambda表达式
  • 表达树
  • 部分方法

(4)C# 4.0 特性

  • 动态绑定
  • 命名和可选参数
  • 泛型的协变和逆变
  • 嵌入式互操作类型

(5)C# 5.0 特性

  • 异步方法
  • 调用方信息特性,调用时访问调用者的信息

(6)C# 6.0 特性

  • Compiler-as-a-service(Roslyn)
  • 将静态类型成员导入命名空间
  • 异常过滤器
  • 在Catch和Finally中使用Await
  • 自动属性初始化器
  • 只读属性的默认值
  • Expression-bodied 函数成员
  • 空条件运算符,简洁检查
  • 字符串插值
  • nameof 表达式
  • 字典初始化器

(7)C# 7.0 特性

  • out变量
  • 模式匹配
  • 元组
  • 解构
  • 局部函数
  • 数字分隔符
  • 二进制文字
  • 局部引用和引用返回
  • 扩展异步返回类型
  • 表达式的构造函数和finalizers
  • 通用的异步返回类型
  • throw表达式

(8)C# 7.1 特性

  • 在main方法用async方式
  • 引入新的字面值default
  • Reference assemblies
  • 推断元组元素名称
  • 泛型的类型参数模式匹配

(9)C# 7.2 特性

  • 编写安全高效代码的技巧
  • 非尾随命名参数
  • 数值文字中的前导下划线
  • private protected 访问修饰符
  • 条件 ref 表达式

(10)C# 7.3 特性

  • 无需固定即可访问固定的字段。
  • 可以重新分配 ref 本地变量。
  • 可以使用 stackalloc 数组上的初始值设定项。
  • 可以对支持模式的任何类型使用 fixed 语句。
  • 可以使用其他泛型约束
  • 可以使用元组类型测试 == 和 !=。
  • 可以在多个位置使用表达式变量。
  • 可以将属性附加到自动实现的属性的支持字段。
  • 由 in 区分的参数的方法解析得到了改进。
  • 重载解析的多义情况现在变得更少。

(11)C# 8.0 特性

  • Readonly 成员
  • 默认接口成员
  • 模式匹配增强功能:Using 声明
  • Switch 表达式
  • 属性模式
  • 元组模式
  • 位置模式
  • 静态本地函数
  • 可处置的 ref 结构
  • 可为空引用类型
  • 异步流
  • 索引和范围

(12)C# 9.0 特性

  • 记录
  • 仅限 Init 的资源库
  • 顶级语句
  • 模式匹配增强功能
  • 本机大小的整数
  • 函数指针
  • 禁止发出 localsinit 标志
  • 目标类型的新表达式
  • 静态匿名函数
  • 目标类型的条件表达式
  • 协变返回类型
  • 扩展 GetEnumerator 支持 foreach 循环
  • Lambda 弃元参数
  • 本地函数的属性
  • 模块初始值设定项
  • 分部方法的新功能

cs架构设计模式是什么 cs架构一般用什么语言_Core_04