首页 > 编程笔记

C#字符串(string)的声明和初始化

字符串就是用字符拼接成的文本值。字符串在存储上类似数组,不仅字符串的长度可取,而且每一位上的元素也可取。

在C#语言中,可以通过 string 类声明字符串。

声明字符串

在C#语言中,字符串必须包含在一对双引号之内,例如以下形式:

"23.23"、"ABCDE"、"你好"、"http://c.biancheng.net"

这些都是字符串常量,字符串常量是系统能够显示的任何文字信息,甚至可以是单个字符。

注意:在C#中,由双引号引起来的都是字符串,不能作为其他数据类型使用,例如"1+2"的输出结果永远也不会是 3。

可以通过以下语法格式来声明字符串:

string str = [null]

细节说明:
例如,声明一个字符串变量 strName,代码如下。
string strName;
也可以同时声明多个字符串,字符串名称之间用英文逗号隔开即可,代码如下:
string name, info, remark;

字符串的初始化

声明字符串之后,如果要使用该字符串,例如下面的代码:
string str;
Console.WriteLine(str);
运行上面代码,将会出现图1所示的错误提示。

C# 使用未初始化的变量时出现的错误提示
图1:C# 使用未初始化的变量时出现的错误提示

从图1可以看出,要使用一个变量,必须先对其进行初始化(即赋值)。对字符串进行初始化的方法主要有以下几种。

1) 引用字符串常量,示例代码如下:
string a = "时间就是金钱,我的朋友。";
string b = "锄禾日当午";
string str1, str2;
str1 = "We are students";
str2 = "We are students";
注意,当两个字符串对象引用相同的常量时,它们就会具有相同的实体。例如,上面代码中的 str1 和 str2 的内存示意图如图2所示。

C#两个字符串对象引用相同的常量
图2:两个字符串对象引用相同的常量

2) 利用字符数组初始化字符串,示例代码如下:
char[] charArray = { 't', 'i', 'm', 'e' };
string str = new string(charArray);

3) 提取字符数组中的一部分初始化字符串,示例代码如下:
char[] charArray = { '时', '间', '就', '是', '金', '钱' };
string str = new string(charArray, 4, 2);

注意,string str=null;string str= "";是两个不同的概念:
上面提到,字符串在使用之前必须初始化,但有一种情况,即使不对其进行初始化,程序也不会出现错误,就是字符串作为成员变量的情况。也就是将字符串的定义放到类中,而不是方法中,这时定义的字符串变量就叫作成员变量,它会保持默认值 null。

例如,下面的 C# 代码在运行时就不会出现错误。
internal class Program
{
     static string name;
     private static void Main(string[] args)
     {
         Console.Write(name);
         Console.ReadLine();
     }
}
上面代码在运行时不会出现异常,因为 name 直接定义在了 Program 类中,所以它将作为成员变量,在 Main 方法中使用 Console.Write 方法输出时,它的值为默认值 null。

推荐阅读