Quando usar struct em vez de class em C#? Entendendo tipos de valor
Olá a todos! Comecei recentemente a estudar C# e fico constantemente confuso sobre quando escolher entre struct e class. Eles parecem semelhantes — em ambos é possível declarar campos, métodos e propriedades. Mas ouvi dizer que struct é um tipo de valor, enquanto class é um tipo de referência, e isso afeta muito o desempenho.
Tenho uma tarefa específica: estou escrevendo um pequeno motor 2D para jogos. Tenho uma estrutura Point com coordenadas X e Y. Atualmente ela está declarada como 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;
}
}
```
Tudo funciona, mas estou criando milhares desses pontos a cada frame, e a aplicação começa a ficar lenta. Um amigo sugeriu substituir class por struct para acelerar o funcionamento. Mas eu