编程技术是改变世界的力量。
本站
当前位置:网站首页 > 后端语言 > 正文

C#入门-简介

gowuye 2024-05-16 14:15 3 浏览 0 评论

C# 语言介绍

C#(读作“See Sharp”)是一种新式编程语言,不仅面向对象,还类型安全。 开发人员利用 C# 能够生成在 .NET 中运行的多种安全可靠的应用程序。 C# 源于 C 语言系列,C、C++、Java 和 JavaScript 程序员很快就可以上手使用。

C# 是面向对象的、面向组件的编程语言。 C# 提供了语言构造来直接支持这些概念,让 C# 成为一种非常自然的语言,可用于创建和使用软件组件。 自诞生之日起,C# 就添加了支持新工作负载和新兴软件设计实践的功能。 C# 本质上是面向对象的语言。_* 你需要定义类型及其行为。

C# 发展历史

C# 1.0 版

2002发布,C# 1.0 的主要功能包括:

  • 结构
  • 接口
  • 事件
  • 属性
  • 委托
  • 运算符和表达式
  • 语句
  • 特性

C# 版本 1.2

随 Visual Studio .NET 2003 一起提供的 C# 版本 1.2。 它对语言做了一些小改进。

C# 2.0 版

从此以后事情变得有趣起来。 让我们看看 C# 2.0(2005 年发布)和 Visual Studio 2005 中的一些主要功能:

  • 泛型
  • 分部类型
  • 匿名方法
  • 可以为 null 的值类型
  • 迭代器
  • 协变和逆变

除现有功能以外的其他 C# 2.0 功能:

  • getter/setter 单独可访问性
  • 方法组转换(委托)
  • 静态类
  • 委托推断

C# 3.0 版

C# 3.0 版和 Visual Studio 2008 一起发布于 2007 年下半年,但完整的语言功能是在 .NET Framework 3.5 版中发布的。 此版本标示着 C# 发展过程中的重大更改。 C# 成为了真正强大的编程语言。 我们来看看此版本中的一些主要功能:

  • 自动实现的属性
  • 匿名类型
  • 查询表达式
  • Lambda 表达式
  • 表达式树
  • 扩展方法
  • 隐式类型本地变量
  • 分部方法
  • 对象和集合初始值设定项

C# 4.0 版

C# 版本 4.0 随 Visual Studio 2010 一起发布,很难达到版本 3.0 的创新水平。 在 3.0 版中,C# 已经完全从 Java 的阴影中脱颖而出,崭露头角。

C# 5.0 版

C# 版本 5.0 随 Visual Studio 2012 一起发布,是该语言有针对性的一个版本。 对此版本中所做的几乎所有工作都归入另一个突破性语言概念:适用于异步编程的 async 和 await 模型。 下面是主要功能列表:

  • 异步成员
  • 调用方信息特性

C# 6.0 版

C# 在 3.0 版和 5.0 版对面向对象的语言添加了主要的新功能。 版本 6.0 随 Visual Studio 2015 一起发布,通过该版本,它不再推出主导性的杀手锏,而是发布了很多使得 C# 编程更有效率的小功能。 以下介绍了部分功能:

  • 静态导入
  • 异常筛选器
  • 自动属性初始化表达式
  • Expression bodied 成员
  • Null 传播器
  • 字符串内插
  • nameof 运算符

其他新功能包括:

  • 索引初始化表达式
  • Catch/Finally 块中的 Await
  • 仅限 getter 属性的默认值

C# 7.0 版

C# 7.0 版已与 Visual Studio 2017 一起发布。 虽然该版本继承和发展了 C# 6.0,但不包含编译器即服务。 以下介绍了部分新增功能:

  • Out 变量
  • 元组和析构函数
  • 模式匹配
  • 本地函数
  • 已扩展 expression bodied 成员
  • Ref 局部变量和返回结果

其他功能包括:

  • 弃元
  • 二进制文本和数字分隔符
  • 引发表达式

C# 7.1 版

C# 已开始随 C# 7.1 发布单点发行 。 此版本增加了语言版本选择配置元素、三个新的语言功能和新的编译器行为。

此版本中新增的语言功能包括:

  • async Main 方法 应用程序的入口点可以含有 async 修饰符。
  • default 文本表达式 在可以推断目标类型的情况下,可在默认值表达式中使用默认文本表达式。
  • 推断元组元素名称
    • 在许多情况下,可通过元组初始化来推断元组元素的名称。
  • 泛型类型参数的模式匹配
    • 可以对类型为泛型类型参数的变量使用模式匹配表达式。

C# 7.2 版

C# 7.2 版添加了几个小型语言功能:

  • 编写安全高效代码的技巧
    • 结合了多项语法改进,可使用引用语义处理值类型。
  • 非尾随命名参数
    • 命名的参数可后接位置参数。
  • 数值文字中的前导下划线
    • 数值文字现可在任何打印数字前放置前导下划线。
  • private protected 访问修饰符 private protected 访问修饰符允许访问同一程序集中的派生类。
  • 条件 ref 表达式 现在可以引用条件表达式 (?:) 的结果。

C# 7.3 版

C# 7.3 版本有两个主要主题。 第一个主题提供使安全代码的性能与不安全代码的性能一样好的功能。 第二个主题提供对现有功能的增量改进。 此外,在此版本中添加了新的编译器选项。

以下新增功能支持使安全代码获得更好的性能的主题:

  • 无需固定即可访问固定的字段。
  • 可以重新分配 ref 本地变量。
  • 可以使用 stackalloc 数组上的初始值设定项。
  • 可以对支持模式的任何类型使用 fixed 语句。
  • 可以使用更多泛型约束。

对现有功能进行了以下增强:

  • 可以使用元组类型测试 == 和 !=。
  • 可以在多个位置使用表达式变量。
  • 可以将属性附加到自动实现的属性的支持字段。
  • 由 in 区分的参数的方法解析得到了改进。
  • 重载解析的多义情况现在变得更少。

C# 8.0 版

C# 8.0 版是专门面向 .NET C# Core 的第一个主要 C# 版本。 一些功能依赖于新的 CLR 功能,而其他功能依赖于仅在 .NET Core 中添加的库类型。 C# 8.0 向 C# 语言添加了以下功能和增强功能:

  • Readonly 成员
  • 默认接口方法
  • 模式匹配增强功能:
    • Switch 表达式
    • 属性模式
    • 元组模式
    • 位置模式
  • Using 声明
  • 静态本地函数
  • 可处置的 ref 结构
  • 可为空引用类型
  • 异步流
  • 索引和范围
  • Null 合并赋值
  • 非托管构造类型
  • 嵌套表达式中的 Stackalloc
  • 内插逐字字符串的增强功能

C# 9.0 版

C# 9.0 随 .NET 5 一起发布。 它是面向 .NET 5 版本的任何程序集的默认语言版本。 它包含以下新功能和增强功能:

C# 9.0 向 C# 语言添加了以下功能和增强功能:

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

C# 9.0 版本继续致力于让 C# 成为一种新式通用编程语言。 功能继续支持新式工作负载和应用程序类型。

相关推荐

R语言数据挖掘实践——支持向量机的常用函数
R语言数据挖掘实践——支持向量机的常用函数

e1071包是R语言中用于支持向量机建模与分析的软件包,其主要用于支持向量机的模型构建,提供核心函数svm()来建立支持向量机的基础模型,并且可辅助使用pred...

2024-05-18 12:15 gowuye

R数据分析:如何做聚类分析,实操解析
R数据分析:如何做聚类分析,实操解析

Clusteringisabroadsetoftechniquesforfindingsubgroupsofobservationswi...

2024-05-18 12:14 gowuye

用R语言做数据分析——马赛克图
用R语言做数据分析——马赛克图

到目前为止,我们已经学习了许多可视化定量或连续型变量间关系的方法。但如果变量是类别型的呢?若只观察单个类别型变量,可以使用柱状图或者饼图;若存在两个类别型变量,...

2024-05-18 12:14 gowuye

用R语言做数据分析——方差分析基本概论
用R语言做数据分析——方差分析基本概论

在实际工作中,影响一件事的因素是很多的,我们总是希望通过各种试验来观察各种因素对试验结果的影响。例如,不同的生产厂家、不同的原材料、不同的操作规程,以及不同的技...

2024-05-18 12:14 gowuye

R语言数据分析实战:数据清洗与可视化
R语言数据分析实战:数据清洗与可视化

《R语言数据分析实战:数据清洗与可视化》是一本深入浅出的实践指南,专为对数据分析感兴趣的读者精心编撰。本书旨在帮助读者掌握R语言这一强大的统计分析工具,通过实例...

2024-05-18 12:13 gowuye

用R语言做数据分析——双因素方差分析
用R语言做数据分析——双因素方差分析

在双因素方差分析中,受试者被分配到两因子的交叉类别组中。以基础安装中的Tooth-Growth数据集为例,随机分配60只豚鼠,分别采用两种喂食方法(橙汁或维生素...

2024-05-18 12:13 gowuye

用R语言做数据分析——独立两样本和K样本检验
用R语言做数据分析——独立两样本和K样本检验

coin包简介对于独立性问题,coin包提供了一个进行置换检验的一般性框架,通过这个包,我们可以回答如下问题:响应值与组的分配独立吗?两个数值变量独立吗?两个类...

2024-05-18 12:13 gowuye

用R语言做数据分析——用回归做方差分析
用R语言做数据分析——用回归做方差分析

之前提到方差分析和回归都是广义线性模型的特例,之前文章的所有设计都可以用lm()函数来分析。为了更好地理解输出结果,需要弄明白在拟合模型时,R语言是如何处理类别...

2024-05-18 12:13 gowuye

数据分析R语言——数据结构
数据分析R语言——数据结构

数据分析R语言——数据结构数组数组(array)与矩阵类似,但是维度可以大于2.数组通过array()函数创建。形式如;myarray<-array(v...

2024-05-18 12:13 gowuye

R语言数据挖掘实践——关联分析的常用函数
R语言数据挖掘实践——关联分析的常用函数

arules和arulesViz是R语言中两个专用于关联分析的软件包。其中arules用于关联规则的数字化生成,提供Apriori和Eclat这两种快速挖掘频繁...

2024-05-18 12:12 gowuye

R语言数据挖掘实践——判别分析的常用函数
R语言数据挖掘实践——判别分析的常用函数

判别算法在R语言中实现主要涉及4个软件包中的相关函数,它们依次为MASS、klaR、class和kknn。其中MASS包含有大量实用而先进的统计计数函数及适用数...

2024-05-18 12:12 gowuye

用R语言读取Excel、PDF和JSON文件,终于有人讲明白了
用R语言读取Excel、PDF和JSON文件,终于有人讲明白了

导读:本文将讨论Excel、PDF等文件的读取,以及相应函数的参数设置。作者:刘健邬书豪如需转载请联系华章科技下图总结了主要程序包,希望读者在日常练习和工作中...

2024-05-18 12:12 gowuye

R语言数据挖掘实践——聚类分析的常用函数
R语言数据挖掘实践——聚类分析的常用函数

使用R语言可以轻松实现聚类分析,stats、cluster、fpc和mclust是常用的四个聚类分析软件包。stats主要包含一些基本的统计函数,如用于统计计算...

2024-05-18 12:12 gowuye

用R语言做数据分析——时间序列分类
用R语言做数据分析——时间序列分类

时间序列分类是根据已标注的时间序列建立一个分类模型,然后使用分类模型预测未标记时间序列的类别。从时间序列中抽取出新特征肯呢个有助于提高分类模型的性能。特征提取技...

2024-05-18 12:11 gowuye

一文看懂用R语言读取Excel、PDF和JSON文件(附代码)
一文看懂用R语言读取Excel、PDF和JSON文件(附代码)

导读:本文将讨论Excel、PDF等文件的读取,以及相应函数的参数设置。作者:刘健邬书豪如需转载请联系华章科技下图总结了主要程序包,希望读者在日常练习和工作中...

2024-05-18 12:11 gowuye

取消回复欢迎 发表评论: