欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

.net 基元类型,引用类型和值类型

发布时间:2024/10/12 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 .net 基元类型,引用类型和值类型 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

基元类型(primitive type):

  编译器直接支持的数据类型称为基元类型(primitive type)。

string 与 String:

  由于C#中的string (一个关键字)直接映射到System.String (一个FCL类型),所以两者没有区别,都可以使用。

  但是在C#中int始终映射在System.Int32,所以不管在 64操作系统还是32位操作系统上,代表的都是32位整数。

     在C#中long映射到的是System.Int64,但是在其他编程语言中,long可能映射到Int16或Int32。 例如C++

checked 与 unchecked 基元类型。

    是否溢出检查

  

    static void Main(string[] args){ Byte b = 200;b = checked((Byte)(b + 200));Console.ReadLine();}     static void Main(string[] args){ Byte b = 200;b = (Byte)checked((b + 200));Console.ReadLine();}

 

引用类型与值类型: 

  CLR支持两种类型:引用类型与值类型:

  1.任何被称为“类”的类型都是引用类型。

  2.文档将所有值类型都称为结构或枚举。

class SomeRef{public Int32 x;}struct SomeVal{public Int32 x;}static void ValueTypeDemo(){SomeRef r1 = new SomeRef();SomeVal v1 = new SomeVal();r1.x = 5;v1.x = 5;Console.WriteLine(r1.x);Console.WriteLine(v1.x);
SomeRef r2
= r1;SomeVal v2 = v1;r1.x = 8;v1.x = 9;Console.WriteLine(v1.x);Console.WriteLine(v2.x);}

由上例子可以看出,重新赋值后的 v1 值改变,但是v2值并没有改变。

而 r1,r2 值全部改变,原因在于 r1,r2是引用类型,改变的只是地址的指向,所以当一个地址改变后 另外的地址也跟着指向新的地址。

 

 

 

 

 

转载于:https://www.cnblogs.com/dragon-L/p/3707106.html

总结

以上是生活随笔为你收集整理的.net 基元类型,引用类型和值类型的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。