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

C#字符串string是值类型还是引用类型在C#中数据类型分为两年夜类, 值类型ValueType、应用类型Object 。 而字符串类型string作为一种特别的存在, 良多时辰轻易让人对其类型发生错觉

需要这些哦
visual studio
方式/
1从string类型的界说来阐发
【C#字符串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是值类型还是引用类型

文章插图


以上内容就是C#字符串string是值类型还是引用类型的内容啦, 希望对你有所帮助哦!

    推荐阅读