C#类型如何工作?

时间:2013-06-09 16:33:59

标签: c#

在C#类型中,据说是有价值的和参考类型

enter image description here

如果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无法理解。

1 个答案:

答案 0 :(得分:1)

值类型存在于两个“风格”中:作为纯值类型和盒装值类型。盒装值类型是不可变引用对象。即使这两者具有不同的“物理”性质,它们的逻辑C#类型也是相同的。即装箱int的类型为int。这与Java不同,在Java中存在逻辑值整数类型和逻辑引用整数类型,它们属于相关但不同的类型。

为了完成这项工作,C#有一个自动装箱机制。

object  o = 5; // Automatically boxes the integer number 5;

必须明确指定取消装箱:

int i = (int)o;