干货来袭! C# 7.0 新特性(VS2017可用)

yizhihongxing

干货来袭!C#7.0新特性(VS2017可用)的完整攻略

介绍

C# 7.0 是微软于2017年推出的一项新技术,它具有以下一些新特性:

  1. Tuples(元组)
  2. Deconstruction(解构)
  3. Out Var(输出变量)
  4. Local function(本地函数)
  5. Ref return and Ref locals(引用返回和引用本地变量)
  6. Pattern matching(匹配模式)
  7. Throw expressions(Throw表达式)

在接下来的文章中,我将逐一介绍每一项新特性。

Tuples(元组)

C# 7.0中的元组使得多种数据进行组合非常容易。在以前的版本中,我们可能会创建一个类或者结构体,来处理多个数据。但是现在,我们可以使用元组来优雅地处理多种数据类型,而不必创建不必要的类:

var tuple = (1, "apple", 10.5);
var a = tuple.Item1;
var b = tuple.Item2;
var c = tuple.Item3;

在这个例子中,我们创建了一个元组tuple,它包括了一个整数、一个字符串和一个浮点数。我们使用var将元组赋值给了t。然后我们可以通过t.Item1t.Item2t.Item3来访问元组中的成员。

var tuple = (1, "apple", 10.5);
(int a, string b, double c) = tuple;

在这个例子中,我们把元组tuple解构成了三个变量abc,而没有使用Item1Item2Item3

Deconstruction(解构)

解构是元组的一个扩展功能。它可以允许开发者将元组(数组、列表等)扁平化为多个变量或常量。

var tuple = (1, "apple", 10.5);
(int a, string b, double c) = tuple;

我们可以使用解构来处理一个元组,这样就可以避免使用元组中的成员了。在这个例子中,我们创建了一个元组tuple,并将其赋值给了三个变量abc。这样,我们就可以避免使用Item1Item2Item3

Out Var(输出变量)

out是一个特殊修饰符,用于指示函数返回值是通过参数的引用而返回的。在C# 7.0中,我们可以使用一个新的out var语法,这样就不需要在使用out关键字的时候再次声明变量。

int.TryParse("123", out int i);

在这个例子中,TryParse函数将返回值作为i参数的引用返回。因此,我们只需要声明一个int型变量i,不需要再次声明类型。

Local function(本地函数)

本地函数是C# 7.0中引入的一项新特性。它可以让函数嵌套以更紧凑的方式呈现。本地函数只能在外部函数内访问,因此它们是私有的。我们可以使用本地函数来提高代码的可读性,并使代码更易于理解。

void OuterFunction(int argument)
{
  LocalFunction();

  void LocalFunction()
  {
    // Code you want to split out
  }
}

在这个例子中,我们定义了一个名为LocalFunction的本地函数。我们可以访问OuterFunction的参数,并在LocalFunction内部使用它。

Ref return and Ref locals(引用返回和引用本地变量)

C# 7.0支持引用返回和引用本地变量。引用返回允许我们将引用类型返回到调用方,而不是创建一个副本。引用本地变量使我们能够创建指向堆上对象的本地变量,而不是创建变量的副本。

ref int AddOneToRef(ref int i)
{
  i++;
  return ref i;
}

int i = 1;
ref int iRef = ref AddOneToRef(ref i);

在这个例子中,我们创建了一个名为AddOneToRef的函数,它将一个整数的值增加1并返回这个增加后的数值的引用。我们同时将一个整数的引用赋给了一个名为iRef的变量。

Pattern matching(匹配模式)

C# 7.0中新增了一种类型匹配的语法:模式匹配。模式匹配是一种处理条件语句、类型转换等操作的方式,它可以将一个复杂的操作简化为几行代码。

int? length = null;
if (length is null)
{
  Console.WriteLine("Length is null");
}

在这个例子中,我们使用了is null模式来判断一个可空类型的值是否为null。如果为null,则打印"Length is null"。

Throw expressions(Throw表达式)

C# 7.0中,Throw表达式允许在表达式中使用throw关键字。这项功能可以简化我们的代码编写,提高代码的可读性。

string value = null;
string result = value ?? throw new ArgumentNullException(nameof(value));

在这个例子中,我们使用了Throw表达式来抛出一个名为value的参数缺失异常。

这些就是 C# 7.0 的新特性,这些新特性使C#更加强大和灵活。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:干货来袭! C# 7.0 新特性(VS2017可用) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • asp.net Web Services上传和下载文件(完整代码)第1/2页

    首先,我们需要了解ASP.NET Web Services是什么。ASP.NET Web Services是一种基于Web的应用程序,允许两个不同的应用程序在互联网上进行通信。它们使用标准的XML消息格式进行通信,可以通过HTTP传输,无需使用编程语言或操作系统进行协调。在这篇文章中,我们将学习如何使用ASP.NET Web Services上传和下载文件。…

    C# 2023年5月31日
    00
  • C#中IEnumerable、ICollection、IList、List之间的区别

    C#中的IEnumerable、ICollection、IList、List是常见的集合接口,它们都用于在程序中管理集合数据类型,但在某些情况下,它们之间的区别比较模糊。下面我们来详细讲解它们之间的区别。 IEnumerable IEnumerable 是一个最基本的集合接口,所有的集合类型都可以实现IEnumerable接口。它只提供了一个GetEnume…

    C# 2023年5月15日
    00
  • C# 创建Excel气泡图的实例代码

    下面是详细的讲解。 1.前言 在使用软件的过程中,Excel无疑是一个非常常用的工具。其中,Excel中的图表功能可以让我们在数据分析的时候更加直观。 很多时候,我们需要通过程序生成Excel中的图表。本篇文章,将介绍如何使用C#代码创建Excel中的气泡图。 2.实现思路 气泡图是一种比较常用的图表形式,通过圆形的大小和位置表现数据,非常能够清晰地展示各个…

    C# 2023年6月3日
    00
  • 在.net应用程序中运行其它EXE文件的方法

    在.NET应用程序中运行其他.exe文件可以通过 Process 类来实现。下面是实现运行其他.exe文件的步骤: 导入命名空间 System.Diagnostics using System.Diagnostics; 创建 Process 对象 Process process = new Process(); 设置 ProcessStartInfo 属性 …

    C# 2023年5月15日
    00
  • c#对list排序示例

    下面我来详细讲解一下c#对list排序的攻略。 如何对List排序 在C#中,可以在List类上使用Sort()方法对其进行排序。Sort()方法根据列表中的元素实现了IComparable泛型接口进行比较排序。默认情况下,它按照列表元素的值进行升序排序。 List<int> numList = new List<int>() { 5…

    C# 2023年6月1日
    00
  • C#获取所有进程的方法

    关于C#获取所有进程的方法,我们可以通过以下步骤进行实现。 1. 引用命名空间 我们需要在代码中添加System.Diagnostics命名空间,代码如下: using System.Diagnostics; 2. 获取所有进程 我们使用Process类中的静态方法GetProcesses()获取当前运行的所有进程,代码如下: Process[] proce…

    C# 2023年6月6日
    00
  • C#中的composite模式示例详解

    C#中的Composite模式示例详解 Composite模式是一种结构型设计模式,它可以通过组合多个对象来创建一个复杂的结构,并且与它们的父对象一起使用。这种模式可以让客户端代码以统一的方式来处理单个对象和对象组合的结构,而不需要区分它们之间的差异,从而提高了代码的可维护性和可扩展性。接下来,我们将通过两个示例来详细讲解C#中的Composite模式。 示…

    C# 2023年5月15日
    00
  • C#异常执行重试的实现方法

    以下是详细讲解“C#异常执行重试的实现方法”的完整攻略。 C#异常执行重试的实现方法 在C#开发中,我们经常会遇到一些意料之外的错误,导致程序出现异常,从而导致程序运行中断。如果这些异常被合理的处理,我们可以重试多次,以期望程序能够在重试结束后正常执行。本文将介绍两种实现C#异常执行重试的方法。 方法一:使用try-catch语句和循环控制语句 首先,我们可…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部