[英]In C#, What are the Differences Between Types and Objects
我是C#的新手,想知道Java中“类型”是否与“对象”同义。 我理解正确吗? 根据到目前为止的了解,C#中的类定义了类型,因此根据该定义,它们可以被视为对象。
C#中的类型是class
或struct
。
在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.