我是C#的新手,想知道是否有类型'是'对象的同义词在Java中。我理解正确吗?根据我迄今为止所学到的,C#中的类定义了类型,因此根据该定义,它们可以被视为对象。
答案 0 :(得分:1)
C#中的类型是class
或struct
。
在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)或结构(值类型)。类型只是用于指代它们的完整集合的单词。