C#字符串string是值类型还是引用类型
1、从string类型的定义来分析 1)public sealed class String 2)注意关键字 class,这个有印象吧,class是属于引用类型的 3)所以,在C#中string类型就是引用类型,这点需要牢记
2、再看int类型的定义是什么呢? 1)public struct Int32 2)int类型大家都知道是属于值类型的,而且struct也是值类型
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是属于引用类型的。只是修改它的值时,它会重新拷贝一份新实例修改,不会在原来的空间中修改,所以,容易让人误以为是值类型
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:49
阅读量:35
阅读量:52
阅读量:61
阅读量:88