Cuándo usar struct en lugar de class en C#? Entendiendo los tipos de valor
¡Hola a todos! Recientemente empecé a estudiar C$ y constantemente me confundo sobre cuándo elegir entre struct y class. Parecen similares — en ambos se pueden declarar campos, métodos, propiedades. Pero he oído que struct es un tipo de valor, mientras que class es un tipo de referencia, y esto afecta mucho al rendimiento.
Tengo una tarea concreta: estoy escribiendo un pequeño motor 2D para juegos. Tengo una estructura Point con coordenadas X e Y. Actualmente 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;
}
}
```
Todo funciona, pero creo miles de estos puntos cada frame, y la aplicación empieza a ralentizarse. Un amigo me recomendó reemplazar class por struct para acelerar el trabajo. Pero temo que esto rompa el código, porque struct se comporta de manera diferente al copiarse.
¿Cuándo realmente vale la pena usar struct? ¿Hay reglas claras? ¿Y qué pasará si simplemente reemplazo la palabra