Cuándo usar struct en lugar de class en C#: entendiendo los tipos de valor y los tipos de referencia
¡Hola a todos! Llevo escribiendo en C# aproximadamente un año, y constantemente me surge la pregunta: ¿cuándo debería usar struct y cuándo class? Creo que entiendo la diferencia: struct es un tipo de valor, mientras que class es un tipo de referencia. Pero en la práctica, a menudo me pierdo.
Por ejemplo, tengo este código:
```csharp
public class PointClass
{
public int X { get; set; }
public int Y { get; set; }
public PointClass(int x, int y) { X = x; Y = y; }
}
public struct PointStruct
{
public int X { get; set; }
public int Y { get; set; }
public PointStruct(int x, int y) { X = x; Y = y; }
}
```
Ambos parecen hacer lo mismo. Pero he leído que struct es más rápido para objetos pequeños porque se almacenan en el stack, mientras que class se almacena en el heap. Por otro lado, he oído que struct no debería usarse con colecciones, LINQ o asincronía, porque empiezan a copiarse de un lado a otro y el rendimiento disminuye.
Además, no entiendo por qué en struct no se puede declarar un constructor sin parámetros.
No answers yet.
Inicia sesión para dejar una respuesta