何时在 C# 中使用 struct 而不是 class?解析值类型
大家好!我最近开始学习 C#,总是在选择 struct 和 class 时感到困惑。它们看起来很相似——都可以声明字段、方法、属性。但我听说 struct 是值类型,而 class 是引用类型,这对性能有很大影响。
我有一个具体的任务:我正在编写一个用于游戏的小型 2D 引擎。我有一个包含 X 和 Y 坐标的 Point 结构。目前它被声明为 class:
```csharp
public class Point
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x;
Y = y;
}
}
```
一切正常,但我每帧创建数千个这样的点,应用程序开始卡顿。朋友建议将 class 替换为 struct 以加速运行。但我担心这会破坏代码,因为 struct 在复制时行为不同。
到底什么时候应该使用 struct?有没有明确的规则?如果我只是替换关键字会发生什么?