CSharp基础知识点之String

string比较

  • String 是引用类型
  • Object.Equals(Object)比较原理是比较的对象的引用
  • == 的方法等于Equals,但是String重写了这个方法,实则比较的是值

string的两种创建方式创建方式

1
string str1 = "string 1";

堆中情况为
images

1
String str2 = new String("string 2");

堆中的情况如下入
images

string的截取

在 .NET Core 2.1 开始支持新方式,这种方式取出字符串替代了 SubString 这种会额外生成临时字符串的方式。如果上述代码发生在较大或较多文本的处理中,那么反复的拼接将生成大量的临时字符串,造成大量 GC 压力;而使用 Span 将不会额外生成任何临时字符串。

1
2
3
4
//原始写法
var sub = "strings".SubString(0,1);
//新写法
var sub = "strings".AsSpan(0,1);