C#编程语言(二):C#部分内建数据类型

System.Console类

Console类表示控制台应用程序的标准输入流、输出流和错误流。

Console类还定义捕获输入和输出的一套方法,它们都被定义成静态的,因此能够通过将类的名字作为方法的前缀来调用。

Write():方法将文本输送到输出流而不附加回车符。

WriteLine():将文本字符串(包括一个回车符)输送到输出流。

Read():从标准输入流读取一个字符。

ReadKey():获取用户按下的一个字符或功能键。

ReadLine():从输入流接收信息直到遇到回车符,

System.Char

C#的文本数据是由内建string和char关键字表示的,它们是System.String和System.Char的简化符号,二者都是基于Unicode的。string表示一组连续的字符(如"Hello"),而char则表示string类型中的单个字符(如'H')。

System.Char类型除了保存一个字符数据之外,还提供了大量的功能。使用System.Char的静态方法,可以判定一个给定的字符是否是数字、字母、标点符号或其他。

System.String

System.String提供了很多你原来期望工具类提供的方法,包括返回字符数据长度、查找当前字符串中子字符串、转换大小写等方法。

  字符串拼接

字符串变量可以通过C#的+运算符连接在一起来构建一个更大的字符串变量。你可能知道,这项技术正式的名称是字符串拼接(string concatenation)。

C#的+符号会被编译器处理为对String.Concat()方法的调用。

例如:string str="bruce"+"wong";

等同于string str=String.Concat("bruce","wong");

  转义字符

C#字符串常量中可以包含各种转义字符,来限制字符串数据应该怎样被输到输出流中。每一个转义字符都以一个反斜线开始,后跟一个特殊的标记。

常用的:

\':将一个单引号插入字符串字面量

\":将一个双引号插入字符串字面量

\\:将一个反斜线插入一个字符串字面量。这在定义文件路径时很有用

\a:触发一个系统警报(蜂鸣)。对控制台应用程序来说,这能给用户提供一个声音提示

\n:换行(在Win32平台上)

\r:回车

\t:将一个水平制表符插入字符串字面量

  定义逐字字符串

以@为前缀的字符串字面量记法,术语称作逐字字符串。使用逐字字符串可以使对一个字面量的转义字符的处理失效并输出字符串。这在使用表示目录和网络路径的字符串时最有用。因此,不需要使用\\转义字符,可以简单地按如下写代码:

// 下面的字符串被逐字输出。因此,所有的转义字符都被显示出来了。

Console.WriteLine(@"C:\MyApp\bin\debug");

还可以通过重复"标记向一个字面量字符串插入一个双引号。例如:

Console.WriteLine(@"Cerebus said ""Darrr! Pret-ty sun-sets""");

  字符串和相等性

System.String是引用类型,引用类型是在垃圾回收托管堆上分配的对象。默认情况下,当我们对引用类型进行相等性测试(通过C# ==和!=运算符)时,如果引用类型指向内存中的相同对象,则返回true。然而,尽管字符串数据类型确实是引用类型,但是相等性运算符已经被重定义为比较字符串对象的值,而不是内存中它们引用的对象。

  字符串是不可变的 

System.String一个有趣的方面是,一旦将初始值赋给字符串对象,字符数据就不能改变了。

static void StringAreImmutable()

{ string s2 = "My other string";

s2 = "New string value"; }

"My other string"沒有被改變,s2指向一個新的"New string value"對象而已!"My other string"(对象已不可达)最终被垃圾回收器回收。

System.Text.StringBuilder

由于字符串是不可变的,字符串类型可能会很低效,因此.NET基类库提供了System.Text命名空间。在这个(相对较小的)命名空间中有一个叫做StringBuilder的类。和System.String类相似,StringBuilder定义了很多用来替换或格式化片段的方法。

StringBuilder的独特之处在于,当我们调用这个类型成员时,都是直接修改对象内部的字符数据(因此更高效),而不是获取按修改后格式的数据副本。

posted @ 2011-02-28 10:01  黄宝强  阅读(400)  评论(0编辑  收藏  举报