c#基础系列之System.String的深入理解

2020-01-05 09:21:48丽君

前言

几乎任何一个项目都离不开对字符串的处理,在C和C++编程中,许多程序的漏洞都是由于字符串缓冲区溢出造成的。为了避免在C#中出现类似的问题,同时也为了使用更方便,C#中专门设置了两个字符串处理类:String类和StringBuilder类。

本文主要给大家介绍了关于c#基础系列之string的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

基本概念

string(严格来说应该是System.String) 类型是我们日常coding中用的最多的类型之一。那什么是String呢?^ ~ ^

String是一个不可变的连续16位的Unicode代码值的集合,它直接派生自System.Object类型。

与之对应的还有一个不常用的安全字符串类型System.Security.SecureString,它会在非托管的内存上分配,以便避开GC的黑手。主要用于安全性特高的场景。[具体可查看msdn这里不展开讨论了。=>msdn查看详情

特性

  • 由于String类型直接派生于Object,所以它是引用类型,那就意味着String对象的实例总是存在于堆上。
  • String具有不变性,也就是说一旦初始化,它的值将永远不变。
  • String类型是封闭的,换言之,你的任何类型不能继承String。