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

2026-01-16 16:18:59

1、从string类型的定义来分析

     1)public sealed class String

     2)注意关键字 class,这个有印象吧,class是属于引用类型的

     3)所以,在C#中string类型就是引用类型,这点需要牢记

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

2、再看int类型的定义是什么呢?

     1)public struct Int32

     2)int类型大家都知道是属于值类型的,而且struct也是值类型

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

3、从string类型的值来分析

     1)string str = null;  这个就可以成功

     2)int a = null;  这样就会报错:“无法将null转换为int”

     3)从这里也可以看出,string类型是引用类型

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

4、通过is比较运算符来分析

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

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

5、通过is比较运算符运行结果来分析

     从运行结果可以看到,string不是值类型,那么它就是引用类型了

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

6、通过is直接判断string是否是object来分析

     从代码与运行结果可以看出,string属于object类型,所以,它就是引用类型了

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

7、总结

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

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢