在C#类型中,据说是有价值的和参考类型
如果System.Object
是最顶级的类,那么它是否意味着一切都是对象?
如果真的......那么这些问题就随之而来
1。所以所有类型都必须是引用类型,因为我们无法直接将值赋给对象.....
2
int a=20; //this is primitive type or object ???
int a = new int(); //according to documentation this is reference type ...
这两个语句是如何不同的......在第一个语句中,new
关键字会自动调用吗?
请解释这个图表让我很困惑......从msdn无法理解。
答案 0 :(得分:1)
值类型存在于两个“风格”中:作为纯值类型和盒装值类型。盒装值类型是不可变引用对象。即使这两者具有不同的“物理”性质,它们的逻辑C#类型也是相同的。即装箱int
的类型为int
。这与Java不同,在Java中存在逻辑值整数类型和逻辑引用整数类型,它们属于相关但不同的类型。
为了完成这项工作,C#有一个自动装箱机制。
object o = 5; // Automatically boxes the integer number 5;
必须明确指定取消装箱:
int i = (int)o;