3

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

4

1 回答 1

1

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

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

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

必须明确指定取消装箱:

int i = (int)o;
于 2013-06-09T16:55:23.747 回答