C#中string类

文章目录

    • 1 string类的特性
      • 1.1 string类是引用类型,但是用起来像值类型
      • 1.2 null和string.Empty的区别
      • 1.3 string对象可以直接用==比较是否相等吗
      • 1.4 判断字符串是否为空的3种方法
    • 2 string类提供的方法
      • 2.1 Trim方法
      • 2.2 Format()方法
    • 3 C#6.0关于string的新特性
      • 3.1 定义为属性时可以直接初始化
      • 3.2 格式化新特性

1 string类的特性

1.1 string类是引用类型,但是用起来像值类型

强调: string类是引用类型,但是这个类型被.net平台做了特殊处理,就是我们使用的效果和值类型一样。

String和string:
C#中string类_第1张图片

1.2 null和string.Empty的区别

有如下代码:

string str1;
string str2 = null;
string str3 = string.Empty;

str1和str2的值均为null,此时str1和str2并未指向具体的string对象。str3的值为"",str3已经指向具体的string对象,只是其字符串的内容为空。

1.3 string对象可以直接用==比较是否相等吗

如下代码:

string s1 = "hello";
string s2 = "hello";
bool ret = (s1 == s2);

ret = true,string对象可以直接使用==比较是否相等。

和如下代码效果一样:

string str1 = "hello";
string str2 = "hello";
bool ret = str2.Equals(str2);

1.4 判断字符串是否为空的3种方法

C#中string类_第2张图片
"“代表零长度字符串,string.Empty的含义与”"的含义是相同的,Empty是静态成员,null是指当前字符串变量还未指向任何字符串实例。


2 string类提供的方法

2.1 Trim方法

string str = "\nhello\n\n";
str = str.Trim();

str = “hello”

Trim方法: 从当前对象移除所有前导空白字符和尾部空白字符(包括’\n’)。

2.2 Format()方法

C#中string类_第3张图片
Format()方法的格式化字符串中各种格式化定义字符:
C#中string类_第4张图片


3 C#6.0关于string的新特性

3.1 定义为属性时可以直接初始化

public string Name { get; set; } = string.Empty;

3.2 格式化新特性

int age = 18;
string s = $"I am {age} years old!";

你可能感兴趣的:(C#)