在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是属于引用类型的。只是修改它的值时,它会重新拷贝一份新实例修改,不会在原来的空间中修改,所以,容易让人误以为是值类型
上一篇:c++如何把一个数转换成字符串
下一篇:不一样剁椒鱼头