2009-08-12 10 views
6

En C# (. NET), ¿cuáles son los estándares normales de "formateo"?¿Cuáles son los estándares de "formateo" de C#?

Por ejemplo, para nombres de parámetros, hasta ahora he notado camelCase sin prefijo, ¿verdad? Para nombres de objetos, camelCase y sin prefijo tampoco, ¿verdad?

Para espacios de nombres, clases, funciones y propiedades, la primera letra de la palabra está en mayúscula y no hay prefijo, ¿está bien (de nuevo)?

¿Cómo se formatea el objeto "temporal"?

Ejemplo:

namespace TestNamespace 
{ 
    class MyOwnCoolClass 
    { 
     MyOwnCoolClass(int length, BinaryWriter writer) 
     { 
      BinaryWriter tempbw = new BinaryWriter(length); 
      return tempbw; 
     } 
    } 
} 

(Nota: Este código no es válido, ya sé, es sólo para demostrar formato). Gracias!

+1

Vaya a buscar "Code Complete 2" de Steve McConnell -> http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&s=books&qid=1250101785&sr = 8-1 – Zack

Respuesta

13

Si usa StyleCop, obtendrá buena consistencia con el Microsoft .NET Design Guidelines for Developing Class Libraries. StyleCop también aplica varias cosas adicionales como el espaciado, el ordenamiento de elementos en un archivo y el nombramiento de elementos de código no públicos.

+0

+1 ¡sacó las palabras de mis dedos! – curtisk

+0

No planeo usar StyleCop, pero el enlace llena exactamente lo que necesitaba. ¡Gracias! – Lazlo

5

Las pautas completas de Microsoft se pueden encontrar en Class Design Guidelines. Es antiguo, pero todavía no he encontrado nada actualizado en MSDN, y creo que sigue siendo el estándar de las recomendaciones

+0

Consulte mi publicación para obtener un enlace a las pautas actualizadas. :) –

+0

Aquí está el enlace actualizado: http://msdn.microsoft.com/en-us/library/ms229042.aspx –

+0

Gracias por su respuesta, pero la respuesta de 280Z28 encajó mi pregunta más. :) Aún así, +1 – Lazlo

0

me gustaría echar un vistazo a la siguiente Coding Practices.

Cubre prácticamente todo lo que veo en la mayor parte del código de C que leo ... incluyendo el prefijo elementos de interfaz de usuario. Yo personalmente no lo sigo al pie de la letra pero te da una buena idea del estándar general y de las buenas/malas prácticas.

0

Existen referencias a los estándares de codificación de Microsoft. Visual Studio 2005 y 2008 tienen un motor de análisis de código integrado que lo guiará a través de estos estándares de codificación y también le indicará algunas mejores prácticas. Haga clic derecho en su proyecto y haga clic en "Ejecutar análisis de código en el proyecto".

Cuando se detecta una porción de código no válido o menos preferido, no solo lo advertirá, sino que lo dirigirá a un recurso de ayuda en el sitio de FxCop.

0

MSDN: Naming Guidelines

que tienden a seguir la forma de codificar el marco .NET así que mi código es compatible con .NET Framework.

Mi única preferencia personal es nombrar las variables de clase que utilizo el prefijo "m_" antes de cada variable como private int m_count.

2

Escribí these guidelines en el último año usando varias pautas de MSFT y otras pautas ampliamente aceptadas. Es posible que desee comprobarlo, también tiene otras cosas, como la configuración de proyectos y otras cosas, pero todas las directrices de nombres también están allí.

editar: Me di cuenta de que esta es una versión anterior, tengo una nueva versión que he estado escribiendo durante un tiempo y contiene muchas cosas buenas, pero no está hecho. Sin embargo, actualizaré esta publicación cuando esté publicada.

+1

Como desarrollador en solitario que nunca ha tenido a nadie que le dé pautas o convenciones, me parece muy informativo. Sin embargo, tengo curiosidad de cómo tratarías con 'var' y las páginas de códigos de un Formulario. Veo la sección sobre "Diseño de archivo de origen" y me pregunto si eso también se aplica a las páginas de códigos de WinForm. Además, en "Controles y componentes", declara que se debe usar 'ux' para evitar cambios de codificación más adelante. ¿Es eso, entonces, la misma mentalidad para usar var? Gracias por el doc! –

+0

Sí, lo mismo ocurre con los formularios. La nueva versión contendrá más golosinas como esa. Normalmente, los eventos de control de región se separarían de los métodos. Normalmente mis formularios nunca tienen métodos, porque siempre creo una capa de servicio separada de la capa de UI. Estoy inclinado a terminar la última versión un poco más rápido, por lo que volveré a publicar aquí cuando se publique. Estar atento. ;) Gracias por el gran comentario por cierto! –

+0

@Paladín retenido: usamos el prefijo "ux" para evitar el cambio de un control de interfaz de usuario más adelante en el desarrollo. p.ej. El uso de las Convenciones húngaras significa que si cambias un cuadro de texto a un cuadro combinado, cambiarías el nombre de "txtMyTextBox" -> "cmbMyComboBox" si eres un seguidor de las convenciones de nombres. Además, "m_" y "ux" prefijos variables de grupo y controles en Intellisense. – Zack

Cuestiones relacionadas