我正在网上阅读C#教程http://www.csharp-station.com/Tutorials/Lesson12.aspx 我谈到了关于 Structs 的话题。
我对此事感到困惑。
struct什么时候有利于使用或者它的实际用途是什么?
答案 0 :(得分:5)
Struct是值类型。类是对象类型。
当您不必通过引用将其传递给函数/方法参数时,您可以使用值类型 - 即您无法在函数/方法中更改它。
无论何时将其传递给函数/方法,它总是被复制(即按值传递),而不是 refernce 。当像对象一样被访问时,结构会自动装箱。
实际上,只要你有一大块形成连贯整体的数据(例如带RGB的颜色,带XYZ的矢量,复数等),结构就会用于建模。整个项目形成一个单元。
它们还用于与非托管库(例如接受结构参数的C或C ++ DLL函数)进行交互。
答案 1 :(得分:2)
struct类型适用于表示轻量级对象,如Point,Rectangle和Color。尽管可以将点表示为类,但在某些情况下结构更有效。例如,如果声明1000个Point对象的数组,则将为引用每个对象分配额外的内存。在这种情况下,结构更便宜。
答案 2 :(得分:0)
你知道int和float不需要“初始化”(设置为new int / float)吗?
结构是一种在类中声明成员的方式,表现得像那样。