何时在C#中使用Structs

时间:2011-03-14 07:04:12

标签: c#

  

可能重复:
  When to use struct in C#?

我正在网上阅读C#教程http://www.csharp-station.com/Tutorials/Lesson12.aspx 我谈到了关于 Structs 的话题。

我对此事感到困惑。
struct什么时候有利于使用或者它的实际用途是什么?

3 个答案:

答案 0 :(得分:5)

Struct是值类型。类是对象类型。

当您不必通过引用将其传递给函数/方法参数时,您可以使用值类型 - 即您无法在函数/方法中更改它。

无论何时将其传递给函数/方法,它总是被复制(即按值传递),而不是 refernce 。当像对象一样被访问时,结构会自动装箱

实际上,只要你有一大块形成连贯整体的数据(例如带RGB的颜色,带XYZ的矢量,复数等),结构就会用于建模。整个项目形成一个单元。

它们还用于与非托管库(例如接受结构参数的C或C ++ DLL函数)进行交互。

答案 1 :(得分:2)

来自MSDN的引文:

  

struct类型适用于表示轻量级对象,如Point,Rectangle和Color。尽管可以将点表示为类,但在某些情况下结构更有效。例如,如果声明1000个Point对象的数组,则将为引用每个对象分配额外的内存。在这种情况下,结构更便宜。

答案 2 :(得分:0)

你知道int和float不需要“初始化”(设置为new int / float)吗?

结构是一种在类中声明成员的方式,表现得像那样。