
Si bien puede que no haya una forma correcta de formatear tu código C#, acordar un estilo consistente en tu equipo puede resultar en una base de código más limpia, legible y escalable. Esta página ofrece consejos y consideraciones clave a tener en cuenta para tus clases, métodos y comentarios al crear tu propia guía de estilo.
Nota: Las recomendaciones compartidas aquí se basan en las proporcionadas por Microsoft. Las mejores reglas de guía de estilo de código son las que funcionan para las necesidades de tu equipo.
Puedes encontrar un ejemplo de guía de estilo de código aquí o descargar el e-book completo, Usa una guía de estilo de C# para un código de juego limpio y escalable (edición de Unity 6).
Junto con la nomenclatura, el formato ayuda a reducir la conjetura y mejora la claridad del código. Al seguir una guía de estilo estandarizada, las revisiones de código se centran menos en cómo se ve el código y más en lo que hace.
Omitir, expandir o modificar estas reglas de ejemplo para adaptarlas a las necesidades de tu equipo.
En todos los casos, considera cómo tu equipo implementará cada regla de formato y luego haz que todos la apliquen de manera uniforme. Revisa el estilo de tu equipo para resolver cualquier discrepancia.
Considera cada una de las siguientes sugerencias de formato de código al configurar tu guía de estilo de desarrollo de Unity.
Una propiedad proporciona un mecanismo flexible para leer, escribir o calcular valores de clase. Las propiedades se comportan como si fueran variables miembro públicas, pero en realidad son métodos especiales llamados accesores. Cada propiedad tiene un método get y set para acceder a un campo privado, llamado campo de respaldo.
De esta manera, la propiedad encapsula los datos, ocultándolos de cambios no deseados por el usuario u objetos externos. El getter y el setter tienen su propio modificador de acceso, lo que permite que tu propiedad sea de lectura-escritura, solo lectura o solo escritura.
También puedes usar los accesores para validar o convertir los datos (por ejemplo, verificar que los datos se ajusten a tu formato preferido o cambiar un valor a una unidad particular).
La sintaxis para propiedades puede variar, por lo que tu guía de estilo debería definir cómo formatearlas. Usa estos consejos para mantener las propiedades consistentes en tu código.
Usa propiedades con cuerpo de expresión para propiedades de una sola línea y solo lectura (=>): Esto devuelve el campo de respaldo privado.
Todo lo demás usa el antiguo { get; set; } sintaxis: Si solo quieres exponer una propiedad pública sin especificar un campo de respaldo, usa la Propiedad Auto-Implementada. Aplica la sintaxis de expresión para los accesores de conjunto y obtención. Recuerda hacer que el setter sea privado si no quieres dar acceso de escritura. Alinea el cierre con la llave de apertura para bloques de código de varias líneas.
La serialización de scripts es el proceso automático de transformar estructuras de datos o estados de objetos en un formato que Unity puede almacenar y reconstruir más tarde. Por razones de rendimiento, Unity maneja la serialización de manera diferente que en otros entornos de programación.
Los campos serializados aparecen en el Inspector, pero no puedes serializar campos estáticos, constantes o de solo lectura. Deben ser públicos o estar etiquetados con el atributo [SerializeField]. Unity solo serializa ciertos tipos de campos, así que consulta la página de documentación para el conjunto completo de reglas de serialización.
Observa algunas pautas básicas al trabajar con campos serializados:
Referencia esta clase serializable desde otra clase. Las variables resultantes aparecen dentro de unidades colapsables en el Inspector.

Hay dos estilos de sangrado comunes en C#:
También hay variaciones en estos estilos de sangrado. Los ejemplos en esta guía utilizan el estilo Allman de las Directrices de Diseño del Marco de Microsoft. Independientemente de cuál elijas como equipo, asegúrate de que todos sigan el mismo estilo de sangrado y de llaves.
La sangría es típicamente de dos o cuatro espacios. Haz que todos en tu equipo estén de acuerdo en una configuración en tus preferencias del Editor sin encender una guerra de llamas entre tabs y espacios. Ten en cuenta que Visual Studio ofrece la opción de convertir tabs en espacios.
En Visual Studio (Windows), navega a Herramientas > Opciones > Editor de Texto > C# > Tabs.
En Visual Studio para Mac, navega a Preferencias > Código Fuente > Código Fuente de C#. Selecciona el Estilo de Texto para ajustar la configuración.

No omitas las llaves, ni siquiera para declaraciones de una sola línea. Las llaves aumentan la consistencia, lo que hace que tu código sea más fácil de leer y mantener. En este ejemplo, las llaves separan claramente la acción, DoSomething, del bucle.
Si más tarde necesitas agregar una línea de Depuración o ejecutar DoSomethingElse, las llaves ya estarán en su lugar. Mantener la cláusula en una línea separada te permite agregar un punto de interrupción fácilmente.
No quites las llaves de las declaraciones multilineales anidadas. Eliminar llaves en este caso no generará un error, pero probablemente causará confusión. Aplica llaves por claridad, incluso si son opcionales. Las llaves también aseguran que las modificaciones, como agregar nueva lógica, se puedan hacer de manera segura sin necesidad de refactorizar la estructura circundante.
El formato puede variar, así que documenta las preferencias de tu equipo en tu guía de estilo y estandariza tus declaraciones de switch en consecuencia.
Aquí hay un ejemplo donde indentas las declaraciones de caso. Generalmente se recomienda incluir un caso por defecto también. Incluso si el caso por defecto no es necesario (por ejemplo, en casos donde todas las posibilidades están cubiertas), incluir uno asegura que el código esté preparado para manejar valores inesperados.
Algo tan simple como el espaciado puede mejorar la apariencia de tu código en pantalla. Tus preferencias de formato personales pueden variar, pero prueba las siguientes sugerencias para mejorar la legibilidad.
Agrega espacios para disminuir la densidad del código.El espacio en blanco adicional puede dar una sensación de separación visual entre partes de una línea, mejorando la legibilidad.
Use un solo espacio después de una coma entre los argumentos de la función.
No agregue un espacio después del paréntesis y los argumentos de la función.
No use espacios entre el nombre de la función y el paréntesis.
En la medida de lo posible, evite espacios dentro de los corchetes.
Use un solo espacio antes de las condiciones de control de flujo y agregue un espacio entre el operador de comparación de flujo y los paréntesis.
Use un solo espacio antes y después de los operadores de comparación.
Mantén las líneas cortas. Considera el espacio en blanco horizontal: Decide un ancho de línea estándar (80-120 caracteres). Divide una línea larga en declaraciones más pequeñas en lugar de dejar que se desborde.
Mantén la indentación/jerarquía: Indenta tu código para aumentar la legibilidad.
No uses alineación de columnas a menos que sea necesario para la legibilidad: Este tipo de espaciado alinea las variables, pero puede dificultar emparejar el tipo con el nombre.
La alineación de columnas, sin embargo, puede ser útil para expresiones a nivel de bits o estructuras con muchos datos. Solo ten en cuenta que puede crear más trabajo para ti mantener la alineación de columnas a medida que agregas más elementos. Algunos autoformateadores también pueden cambiar qué parte de la columna se alinea.
También puedes usar el espaciado vertical a tu favor. Mantén las partes relacionadas del script juntas y utiliza los espacios en blanco a tu favor. Prueba estas sugerencias para organizar tu código de arriba hacia abajo:
Mantén esto al mínimo y anota en tu guía de estilo donde sea aplicable.
Usando regiones en tu código
La directiva #region te permite colapsar y ocultar secciones de código en archivos C#, haciendo que archivos grandes sean más manejables y fáciles de leer.
Sin embargo, si sigues el consejo general para Clases de esta guía, el tamaño de tu clase debería ser manejable y la directiva #region superflua. Divide tu código en clases más pequeñas en lugar de ocultar bloques de código detrás de regiones. Tendrás menos inclinación a agregar una región si el archivo fuente es corto.
Nota: Muchos desarrolladores consideran que las regiones son olores de código o anti-patrones. Decidan como equipo de qué lado del debate se encuentran.
No se desespere si estas reglas de formato parecen abrumadoras. Los IDE modernos hacen que sea eficiente configurarlas y hacerlas cumplir. Puede crear una plantilla de reglas de formato y luego convertir sus archivos de proyecto a la vez.
Para establecer reglas de formato para el editor de scripts:
Si en algún momento deseas forzar que tu archivo de script se ajuste a la guía de estilo:
En Windows, también puedes compartir la configuración de tu editor desde Herramientas > Importar y Exportar Configuraciones. Exporte un archivo con el formato de código C# de la guía de estilo y luego haga que cada miembro del equipo importe ese archivo.
Visual Studio facilita seguir la guía de estilo. El formateo se vuelve tan simple como usar una combinación de teclas.
Nota: Puedes configurar un archivo EditorConfig en lugar de importar y exportar configuraciones de Visual Studio. Hacer esto te permite compartir el formato más fácilmente entre diferentes IDEs, y tiene el beneficio adicional de funcionar con el control de versiones. Consulta las opciones de reglas de estilo de código .NET para más información.
Aunque esto no es específico para código limpio, asegúrate de revisar 10 maneras de acelerar tu flujo de trabajo de programación en Unity con Visual Studio. El código limpio es mucho más fácil de formatear y refactorizar si aplicas estos consejos de productividad.

Para configurar un archivo .editorconfig en Visual Studio Code, sigue estos pasos:
Aquí hay un ejemplo de configuración para C#:
# archivo EditorConfig más alto
root = true
# finales de línea estilo Unix con un salto de línea al final de cada archivo
[*]
end_of_line = lf
insert_final_newline = true
# indentación de 4 espacios
[*.cs]
estilo_de_indentación = espacio
tamaño_de_indentación = 4
charset = utf-8
trim_trailing_whitespace = true
# Indentación con tabulaciones para Makefiles
[Makefile]
indent_style = tab
# Configuraciones específicas para archivos JSON
[*.json]
estilo_de_indentación = espacio
tamaño_de_indentación = 2
Aprende más sobre convenciones de nomenclatura aquí o consulta el libro electrónico completo. También puedes explorar nuestro ejemplo de guía de estilo de código detallada.