我什么时候使用结构而不是在c#中使用类

本文关键字:什么时候 结构 | 更新日期: 2023-09-27 18:05:27

可能重复:
什么时候应该使用结构而不是类?

由文卡特K在C#。NET论坛。

2009年4月29日上午07:38

"类"answers"结构"之间的唯一区别是,结构默认具有公共成员(包括数据成员和函数成员(,结构默认为公共继承,而类默认为私有成员和私有继承。这是唯一的区别。这种差异可以通过明确指定"公共"来规避,private或protected,这样结构就可以像类一样工作,反之亦然。按照惯例,大多数程序员将"struct"用于没有成员函数和不使用继承的数据类型。他们将"class"用于具有成员函数和继承的数据类型。然而,这不是必要的,甚至不是通用的。

*(这是真的吗(

我什么时候使用结构而不是在c#中使用类

当涉及到C#时,该语句是完全错误的。我相信C++可能是这样,但在C#中,区别在于值类型(structs(和引用类型

这不是唯一的区别。结构是值类型,类是referencetype。在谷歌上查找更多关于差异的信息,这些差异太多了,我现在无法列出。

除非,正如@BrokenGlass指出的那样,它是C++。

您引用的语句对C++来说是正确的,但对C#来说不是。以下是C#语言规范对structs:的描述摘录

与类一样,结构是可以包含数据成员和函数成员的数据结构,但与类不同,结构是值类型,不需要堆分配。结构类型的变量直接存储结构的数据,而类类型的变量存储对动态分配对象的引用。结构类型不支持用户指定的继承,并且所有结构类型都从类型对象隐式继承。

结构对于具有值语义的小型数据结构特别有用。复数、坐标系中的点或字典中的键值对都是结构的好例子。对于小型数据结构,使用结构而不是类可以在应用程序执行的内存分配数量上产生很大差异。