Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么时候使用struct而不是c#中的类?_C# - Fatal编程技术网

什么时候使用struct而不是c#中的类?

什么时候使用struct而不是c#中的类?,c#,C#,可能重复: 作者:Venkat K在C#NET论坛上 2009年4月29日上午7:38 “类”和“结构”之间的唯一区别是,结构默认具有公共成员(数据成员和函数成员),结构默认具有公共继承,而类默认具有私有成员和私有继承。这是唯一的区别。可以通过显式指定“public”、“private”或“protected”来避免这种差异,从而使结构在任何情况下都像类一样工作,反之亦然。按照惯例,大多数程序员对没有成员函数且不使用继承的数据类型使用“struct”。他们使用“class”“用于具有成员函数和

可能重复:

作者:Venkat K在C#NET论坛上

2009年4月29日上午7:38

“类”和“结构”之间的唯一区别是,结构默认具有公共成员(数据成员和函数成员),结构默认具有公共继承,而类默认具有私有成员和私有继承。这是唯一的区别。可以通过显式指定“public”、“private”或“protected”来避免这种差异,从而使结构在任何情况下都像类一样工作,反之亦然。按照惯例,大多数程序员对没有成员函数且不使用继承的数据类型使用“struct”。他们使用“class”“用于具有成员函数和继承的数据类型。然而,这不是必要的,甚至不是普遍接受的


*(这是真的吗)

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


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

,在C语言中,这个语句是完全错误的。我相信C++可能是正确的,但是在C语言中,值类型(Struts)和引用类型(类)之间的区别是:

,你引用的语句对于C++是正确的,但对于C++是不正确的。下面是C语言规范关于结构的一段摘录:

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

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


你确定作者不是在谈论C++吗?对于C#,这根本不是真的,结构(值类型)和类(引用类型)之间的区别是根本性的。我猜,他在问这句话是不是真的。然而,这是一个没有进行原创研究的失败。它就在文档中。