多语言展示
当前在线:1392今日阅读:113今日分享:31

C#字符串string是值类型还是引用类型

在C#中数据类型分为两大类,值类型ValueType、应用类型Object。而字符串类型string作为一种特殊的存在,很多时候容易让人对其类型产生错觉
工具/原料

visual studio

方法/步骤
1

从string类型的定义来分析     1)public sealed class String     2)注意关键字 class,这个有印象吧,class是属于引用类型的     3)所以,在C#中string类型就是引用类型,这点需要牢记

3

从string类型的值来分析     1)string str = null;  这个就可以成功     2)int a = null;  这样就会报错:“无法将null转换为int”     3)从这里也可以看出,string类型是引用类型

4

通过is比较运算符来分析     创建任何一个C#的项目,本文创建的是控制台应用程序,输入如图所示的代码,输入完整,编译器就已经提示“给定的表达式始终不是所提供的ValueType类型”,从此处也可以看出,string不是值类型

5

通过is比较运算符运行结果来分析     从运行结果可以看到,string不是值类型,那么它就是引用类型了

6

通过is直接判断string是否是object来分析     从代码与运行结果可以看出,string属于object类型,所以,它就是引用类型了

7

总结     从上面各种角度都可以得出结论,在C#中,string是属于引用类型的。只是修改它的值时,它会重新拷贝一份新实例修改,不会在原来的空间中修改,所以,容易让人误以为是值类型

推荐信息