C# 7.0 核心技术指南 (31):C#语言基础 2.6.1&2.6.2

阅读数:9 2019 年 11 月 30 日 23:43

C# 7.0核心技术指南(31):C#语言基础 2.6.1&2.6.2

(char 转换)

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

从 char 类型到数值类型的隐式转换只在这个数值类型可以容纳无符号 short 类型时有效。对于其他的数值类型,则需要显式转换。


(字符串类型)

C#中的字符串类型(System.String 类型的别名,我们将在第 6 章详细介绍)表示不可变的 Unicode 字符序列。字符串字面量应位于两个双引号(")之间:

复制代码
string a = "Heat";

string 类型是引用类型而不是值类型。但是它的相等运算符却遵守值类型的语义。

复制代码
string a = "test";
string b = "test";
Console.Write (a == b); // True

对 char 字面量有效的转义字符在字符串中同样有效:

复制代码
string a = "Here's a tab:\t";

这意味着当需要一个反斜杠时,需要写两次才可以:

复制代码
string a1 = "\\\\server\\fileshare\\helloworld.cs";

为避免这种情况,C#引入了原意字符串字面量。原意字符串字面量要加 @前缀,它不支持转义字符。下面的原意字符串和之前的字符串是一样的。

复制代码
string a2 = @"\\server\fileshare\helloworld.cs";

原意字符串可以贯穿多行:

复制代码
string escaped = "First Line\r\nSecond Line";
string verbatim = @"First Line
Second Line";
// True if your IDE uses CR-LF line separators:
Console.WriteLine (escaped == verbatim);

原意字符串中需要用两个双引号来表示一个双引号字符:

复制代码
string xml = @"<customer id=""123""></customer>";

2.6.2.1 连接字符串

+ 运算符可连接两个字符串:

复制代码
string s = "a" + "b";

如果操作数之一是非字符串值,则会调用其 ToString 方法,例如:

复制代码
string s = "a" + 5; // a5

重复使用 + 运算符来构建字符串是低效的。更好的解决方案是使用 System.Text.StringBuilder 类型(将在第 6 章介绍)。

2.6.2.2 字符串插值(C# 6)

以 $ 字符为前缀的字符串称为插值字符串。插值字符串可以在大括号内包含表达式:

复制代码
int x = 4;
Console.Write ($"A square has {x} sides"); // Prints: A square has 4 sides

大括号内可以是任意类型的合法 C#表达式。C#会调用其 ToString 方法或等价方法将表达式转换为字符串。若要更改表达式的格式,可以使用冒号,并继以格式字符串(我们将在 6.1.2.7 节中对其详细介绍):

复制代码
string s = $"255 in hex is {byte.MaxValue:X2}"; // X2 = 2-digit Hexadecimal
// Evaluates to "255 in hex is FF"

插值字符串只能是在单行内声明,除非使用原意字符串运算符。需要注意,$ 运算符必须在 @运算符之前:

复制代码
int x = 2;
string s = $@"this spans {
x} lines";

若要在插值字符串中表示大括号字符只需书写两个大括号字符即可。

2.6.2.3 字符串比较

string 类型不支持 < 和 > 的比较。必须使用字符串的 CompareTo 方法。这部分内容将在第 6 章介绍。

C# 7.0核心技术指南(31):C#语言基础 2.6.1&2.6.2

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

评论

发布