1、String介绍
首先我们得明白,string和String代表的实际上是同一个类型,string是C#中的关键字,代表String类型,因此我们直接来学习String类型。

从官方的底层实现代码可以看出,当前String类型实际上就是一个Char类型的聚合,这里既然是聚合其实也可以得到结论就是string可以使用迭代器进行访问。但是,string类型是不可变的。
为什么string类型不可变?:原因有很多,但是从底层的角度出发
其实可以看出来,他只有get没有set,所以是不可变的。
下面是构造函数,注意带有指针的部分是并不适用于CLS(通用语言规范),也就是c#原生语法的。

2、字段
目前只有一个字段

3、属性
string类型有两个属性。
索引器,只读

char长度,只读

其实从这里就可以看出来,c#官方推介使用string只是作为临时存储,不希望通过属性或者字段来实现增删改查。
4、方法
这里选择比较有代表性或者比较常用的方法。
注意:string类型是不可变的,因此他实际的修改都是返回新的string来实现。
4.1、EndsWith(尾匹配)

4.2、Format(模板格式):不多介绍,常用
4.3、Replace(替换)

注意,他并不是指只替换第一个,而是全部。

4.4、ReplaceLineEndings (替换所有换行字符)

4.5、Split(拆分,返回string数组)

4.6、StartsWith(开头是否匹配)

4.7、Substring (返回子字符串)

4.8、ToCharArray (返回当前字符串的char数组)
这里必须要注意点,修改这个char数组里面的值并不会修改string原来的值!可以通过下面的源码得到这个结论

4.9、TryCopyTo(复制到目标范围):做了解,了解一下什么是span

5、运算符
实现了+法。==和!=判断。
除此之外还实现了一个。


可以理解为封装器,这个span是new出来的,但是value通过的是ref这种址传递的方式,因此,这个就是被封装的原来


使用方法也很简单,隐式转换
