C#新手营——1.C#简介

本文介绍了C#编程语言及其在.NET框架中的作用,包括.NET Framework和.NET Core的区别以及Xamarin在移动开发中的应用。详细阐述了C#的类型系统,以及历届版本的重要特性,如异步方法、泛型和动态绑定等。同时,概述了.NET版本的历史和支持周期,帮助读者理解C#和.NET平台的发展历程。
摘要由CSDN通过智能技术生成

1.C#是什么

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

 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开发解决方案,以及开发工具和类库。

2.1 .NET Framework

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

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

框架版本发行日期最后支持时间
.NET Framework 4.0

April 12, 2010

January 12, 2016
.NET Framework 4.5August 15, 2012January 12, 2016
.NET Framework 4.5.1October 17, 2013January 12, 2016
.NET Framework 3.5 SP1November 18, 2008October 10, 2028
.NET Framework 4.5.2May 05, 2014April 26, 2022
.NET Framework 4.6July 20, 2015April 26, 2022
.NET Framework 4.6.1November 30, 2015April 26, 2022
.NET Framework 4.6.2August 02, 2016
.NET Framework 4.7April 05, 2017
.NET Framework 4.7.1October 17, 2017
.NET Framework 4.7.2April 30, 2018
.NET Framework 4.8April 18, 2019
.NET 5.0September 14, 2021(持续更新)
.NET 6.0September 14, 2021(持续更新)

2.2 .NET Core

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

下面汇总了.NET Core版本:

.Net Core版本
版本发行日期最后支持时间
.NET Core 1.0May 14, 2019June 27, 2019
.NET Core 1.1May 14, 2019 June 27, 2019
.NET Core 2.0July 10, 2018October 01, 2018
.NET Core 2.1August 19, 2021August 21, 2021
.NET Core 2.2November 19, 2019December 23, 2019
.NET Core 3.0February 18, 2020March 03, 2020
.NET Core 3.1September 14, 2021December 03, 2022
.NET 5.0September 14, 2021(持续更新)
.NET 6.0September 14, 2021(持续更新)

2.3 XAMARIN

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

3.类型和变量

分类

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

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

值类型和引用类型的区别

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

 
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 弃元参数
  • 本地函数的属性
  • 模块初始值设定项
  • 分部方法的新功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值