就像仓库,仓库里有货架,货架上有编号:A1,A2,A3...................., 这些编号就可以看做是引用类型,现在来了一批货,有 “土豆,黄瓜,西红柿”,这些就是值类型,如果你想让 A1=土豆,那么就要把土豆搬到 A1 里面去,这就叫装箱,装箱需要耗费人力和工时(也就是耗费CPU和内存),同理拆箱就要把对应编号的货物搬出来,也是需要耗费人力和工时。
每一个值类型都有一个独立的内存区域保存自己的值,调用它的时候调用的是它的值,而引用类型调用的是内存中的地址,比如定义引用类型 a1=10,这时候在内存中保存的是 10,当把 a1 赋给 a2 的时候,他们两个应用的是同一个内存空间,a2 的值会保存为 a1 的值,当把 a2 改为 20 时,应为 a1 和 a2 引用的是同一个所以 a1 也变成 20 了,这是引用类型,值类型是当把 a1 赋给 a2 时会为 a2 在开一块新的空间保存 a1 的值。当把 a2 改成 20 时就会在 a2 的空间保存 20,和 a1 并无什么关系。
值类型的特点:
C# 中 String 跟 string 的区别
string 是 C# 中的类,String 是 .net Framework 的类(在 C# IDE 中不会显示蓝色) C# string 映射为 .net Framework 的String 如果用 string, 编译器会把它编译成 String,所以如果直接用 String 就可以让编译器少做一点点工作。
如果使用 C#,建议使用 string,比较符合规范 string 始终代表 System.String(1.x) 或 ::System.String(2.0) ,String 只有在前面有 using System;的时候并且当前命名空间中没有名为 String 的类型(class、struct、delegate、enum)的时候才代表 System.String string 是关键字,String 不是,也就是说 string 不能作为类、结构、枚举、字段、变量、方法、属性的名称,而 String 可以。
String 是 CLR 的类型名称(也算是关键字),而 string 是 C# 中的关键字。string 在编译时候 C# 编译器会默认将其转换为 String,在这里会多增加几行转换的代码。很多时候都是建议使用 CLR 的类型而不要使用 C# 的类型(这是专家的建议)。比如说还有:使用 int 的时候最好使用 Int32 等。很多时候都是一个习惯问题,规范问题。还有一个不同就是在 VS 中表现的颜色不一样:String 是绿色,string 是蓝色。
obj 和int之间关系
using System; namespace RectangleApplication { class ExecuteRectangle { static void Main(string[] args) { int a=9; object obj; obj = a; obj =10; Console.WriteLine("2: {0}", a); // 输出:2: 9 Console.WriteLine("1: {0}", obj); // 输出:1: 10 Console.ReadLine(); } } }
设置值 int a=9; obj=a; 当obj改变不会对 int a 进行改变,object 只是复制了 int a 的值出来然后对其操作而已。不会影响到 int 原来的值。
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
2356C# 数据类型
就像仓库,仓库里有货架,货架上有编号:A1,A2,A3...................., 这些编号就可以看做是引用类型,现在来了一批货,有 “土豆,黄瓜,西红柿”,这些就是值类型,如果你想让 A1=土豆,那么就要把土豆搬到 A1 里面去,这就叫装箱,装箱需要耗费人力和工时(也就是耗费CPU和内存),同理拆箱就要把对应编号的货物搬出来,也是需要耗费人力和工时。
2355C# 数据类型
每一个值类型都有一个独立的内存区域保存自己的值,调用它的时候调用的是它的值,而引用类型调用的是内存中的地址,比如定义引用类型 a1=10,这时候在内存中保存的是 10,当把 a1 赋给 a2 的时候,他们两个应用的是同一个内存空间,a2 的值会保存为 a1 的值,当把 a2 改为 20 时,应为 a1 和 a2 引用的是同一个所以 a1 也变成 20 了,这是引用类型,值类型是当把 a1 赋给 a2 时会为 a2 在开一块新的空间保存 a1 的值。当把 a2 改成 20 时就会在 a2 的空间保存 20,和 a1 并无什么关系。
2354C# 数据类型
值类型的特点:
2353C# 数据类型
C# 中 String 跟 string 的区别
string 是 C# 中的类,String 是 .net Framework 的类(在 C# IDE 中不会显示蓝色) C# string 映射为 .net Framework 的String 如果用 string, 编译器会把它编译成 String,所以如果直接用 String 就可以让编译器少做一点点工作。
如果使用 C#,建议使用 string,比较符合规范 string 始终代表 System.String(1.x) 或 ::System.String(2.0) ,String 只有在前面有 using System;的时候并且当前命名空间中没有名为 String 的类型(class、struct、delegate、enum)的时候才代表 System.String string 是关键字,String 不是,也就是说 string 不能作为类、结构、枚举、字段、变量、方法、属性的名称,而 String 可以。
String 是 CLR 的类型名称(也算是关键字),而 string 是 C# 中的关键字。string 在编译时候 C# 编译器会默认将其转换为 String,在这里会多增加几行转换的代码。很多时候都是建议使用 CLR 的类型而不要使用 C# 的类型(这是专家的建议)。比如说还有:使用 int 的时候最好使用 Int32 等。很多时候都是一个习惯问题,规范问题。还有一个不同就是在 VS 中表现的颜色不一样:String 是绿色,string 是蓝色。
2352C# 数据类型
obj 和int之间关系
设置值 int a=9; obj=a; 当obj改变不会对 int a 进行改变,object 只是复制了 int a 的值出来然后对其操作而已。不会影响到 int 原来的值。