Avatar ·

何时在 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?有没有明确的规则?如果我只是替换关键字会发生什么?