¿Cuándo debería usar una estructura en lugar de una clase en C #?

¿Cuándo debería usar la estructura y no la clase en C #? Mi modelo conceptual es que las estructuras se utilizan en momentos en que el elemento es simplemente una colección de tipos de valor. Una forma de mantenerlos todos juntos lógicamente en un todo cohesivo.

Me encontré con estas reglas aquí:

  • Una estructura debe representar un solo valor.
  • Una estructura debe tener una huella de memoria de menos de 16 bytes.
  • Una estructura no debe cambiarse después de su creación.

¿Funcionan estas reglas? ¿Qué significa una estructura semánticamente?

preguntado el 06 de febrero de 09 a las 15:02

System.Drawing.Rectangle viola las tres reglas. -

hay bastantes juegos comerciales escritos en C #, el punto es que se usan para código optimizado -

Las estructuras proporcionan un mejor rendimiento cuando tiene pequeñas colecciones de tipos de valor que desea agrupar. Esto sucede todo el tiempo en la programación de juegos, por ejemplo, un vértice en un modelo 3D tendrá una posición, una coordenada de textura y una normal, también generalmente será inmutable. Un solo modelo puede tener un par de miles de vértices, o puede tener una docena, pero las estructuras proporcionan menos gastos generales en este escenario de uso. Lo he verificado a través del diseño de mi propio motor. -

@ChrisW Ya veo, pero ¿esos valores no representan un rectángulo, es decir, un valor "único"? Como Vector3D o Color, también hay varios valores dentro, pero creo que representan valores únicos. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.