recomiendo a nunca utilice una estructura a menos que tenga un caso de uso muy específico en mente y sabe exactamente cómo la estructura se beneficiará del sistema.
Aunque C# estructuras permiten que los miembros, que trabajan un buen poco diferente a las clases (no se puede subtitular, sin despacho virtual, puede vivir enteramente en la pila) y el comportamiento cambia dependiendo de elevación, etc (Levantar es el proceso de promover un tipo de valor al montón: sorpresa!)
Entonces, para responder a la pregunta: Creo que uno de los mayores nombres incorrectos en C# es el uso de estructuras "para el rendimiento". La razón de esto es que 'gastos generales' no pueden medirse realmente sin ver cómo interactúa con el resto del sistema y el rol, si es que tiene algo de importancia, que juega. Esto requiere un perfil y no se puede resumir con una declaración tan trivial como "menos gastos generales".
Hay buenos casos para los tipos de valores struct - un ejemplo es un valor RGB compuesto almacenado en una matriz para una imagen. Esto se debe a que el tipo RGB es pequeño, no puede haber muy muchos en una imagen, tipos de valores pueden ser embalados bien en las matrices, y pueden ayudar a mantener una mejor localidad de memoria, etc.
Supongo que quiere decir que nunca ha definido una estructura. Probablemente los uses todos los días sin pensarlo. – Gabe
@Gabe Correcto, lo arreglé :-) –
@pst: Creo que Gabe se refiere a donde dices "Recomiendo que nunca uses una estructura". Obviamente, esto no es lo que quieres decir. –