C# 7.0 核心技术指南 (40):C#语言基础 2.8.5&2.8.6

阅读数:8 2019 年 12 月 4 日 17:10

C# 7.0核心技术指南(40):C#语言基础 2.8.5&2.8.6

(引用局部变量(C# 7))

内容简介
本书前三章将集中介绍 C#语言。首先介绍基本的语法、类型和变量。而后会介绍一些高级的特性,如不安全代码以及预处理指令。如果你是 C#语言的初学者,请循序渐进地阅读这些章节。
其余各章则涵盖了.NET Framework 的核心功能,包括 LINQ、XML、集合、并发、I/O 和网络、内存管理、反射、动态编程、特性、安全、应用程序域和原生互操作性等主题。第 6 章和第 7 章是后续主题的基础,除这两章之外,其余各章可以按照需要以任何顺序阅读。LINQ 相关的三个章节好按顺序阅读。其中的一些章节需要一些并发相关的知识,这些知识将在第 14 章中介绍。

C# 7 添加了一个令人费解的特性:即定义一个用于引用数组中某一个元素或对象中某一个字段的局部变量:

复制代码
int[] numbers = { 0, 1, 2, 3, 4 };
ref int numRef = ref numbers [2];

在这个例子中,numRef 是 numbers[2] 的引用。当我们更改 numRef 的值时,也相应更改了数组中的元素值:

复制代码
numRef *= 10;
Console.WriteLine (numRef); // 20
Console.WriteLine (numbers [2]); // 20

引用局部变量的目标只能是数组的元素、对象字段或者局部变量;而不能是属性(见第 3 章)。引用局部变量适用于在特定的场景下进行小范围优化,并通常和引用返回值合并使用。


(引用返回值(C# 7))

从方法中返回的引用局部变量,称为引用返回值(ref return):

复制代码
static string X = "Old Value";
static ref string GetX() => ref X; // This method returns a ref
static void Main()
{
ref string xRef = ref GetX(); // Assign result to a ref local
xRef = "New Value";
Console.WriteLine (X); // New Value
}

C# 7.0核心技术指南(40):C#语言基础 2.8.5&2.8.6

购书地址 https://item.jd.com/12681788.html?dist=jd

评论

发布