在C#中,类型和对象之间有什么区别

时间:2015-04-10 16:21:13

标签: c# types

我是C#的新手,想知道是否有类型'是'对象的同义词在Java中。我理解正确吗?根据我迄今为止所学到的,C#中的类定义了类型,因此根据该定义,它们可以被视为对象。

3 个答案:

答案 0 :(得分:1)

C#中的类型classstruct

在Java中,您只有基本类型,因此您几乎总是使用术语。但是在C#中你还有 structs ,它们是值类型,所以我们使用更通用的术语 type 来指定它们。

示例:

var sb = new StringBuilder();
var id = Guid.NewGuid();
  • sb是一个包含对对象
  • 的引用的变量
  • id是一个包含
  • 的变量
  • StringBuilder,因此它也是类型
  • Guid struct ,因此它也是类型

还有其他类型:枚举,委托等,所有这些只是伪装的类或结构:委托成为类,枚举是结构。

答案 1 :(得分:0)

如果声明局部变量string x,则变量x可以引用类型为string的对象实例。我们将string称为引用类型,因为变量包含对对象实例的引用。

同样,如果声明局部变量int y,则变量y包含类型int的实例。我们将int称为值类型,因为变量包含对象实例的实际值。

有一个轻微的含糊之处在于object也是C#中所有其他类型的基本类型的简写名称:System.Object。因此,从这个意义上说,object被用作类型的名称,但通常我们使用object来引用特定类型的实例。

答案 2 :(得分:0)

“object”通常用于指代实例。 object也是C#中任何类型的基类。

C#中的类型是您正在谈论的对象类型。如果您查看以下代码片段,差异就会变得清晰:

MyClass obj = new MyClass();
Type type = typeof(obj);

类型可以是类(引用类型;类似于Java)或结构(值类型)。类型只是用于指代它们的完整集合的单词。