繁体   English   中英

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

[英]In C#, What are the Differences Between Types and Objects

我是C#的新手,想知道Java中“类型”是否与“对象”同义。 我理解正确吗? 根据到目前为止的了解,C#中的类定义了类型,因此根据该定义,它们可以被视为对象。

C#中的类型classstruct

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

例:

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

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

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

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

object还有一点点歧义,它也是C#中所有其他类型的基本类型的缩写名称: System.Object 因此,从这个意义上讲, object被用作类型的名称,但是通常我们使用对象来引用特定类型的实例。

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

C#中的类型是您正在谈论的对象的类型。 如果查看以下代码段,则区别将变得很明显:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM