Pregunta

Realmente aprecio la posibilidad de definir las regiones en el código, ya que mejora la legibilidad locamente.

De todas formas, me gustaría tener todos los que usan la misma convención en todas las clases (con el orden predefinido de todas las regiones) como:

  • Los campos privada
  • Constructors
  • Propiedades de la clase
  • controladores de eventos
  • etc ...

¿Tienes alguna propuesta de cómo esta división podría ser similar (¿Qué regiones tienen sentido y qué nombres deberían tener) y en qué orden se debe ser definido?

¿Fue útil?

Solución

Mi convención no es usarlos.

Si encuentra que su clase haciendo demasiado grande tal que necesita para ocultar grandes partes de ella a través de las regiones propongo su clase es demasiado complejo y debe ser descompuesto.

Otros consejos

Alguien dijo una vez que el tener una convención similar a la anterior:

  
      
  • Los campos privada
  •   
  • Constructors
  •   
  • Propiedades de la clase
  •   
  • controladores de eventos
  •   
  • etc ...
  •   

es como el establecimiento de una mesa en la que todas las placas están juntos, todas las cucharas están juntos, todos los cuchillos están juntos y todas las horquillas están juntos.

Mi opinión sobre el tema #region es poner métodos relacionados, las definiciones de eventos y propiedades juntos en una sola región. Sin embargo, tener que hacerlo en absoluto indicaría un olor código (ya sea su clase es demasiado grande o hace demasiadas cosas), pero este es un buen primer paso en la refactorización en una clase mejor.

Cada vez que veo regiones Creo que el código se genera ya sea o en necesidad de re-factorización.

Evitar el uso de ellos y cuando se siente la necesidad de ellos, volverá a examinar lo que está haciendo y tratar de dividir la clase en la que los más pequeños. En última instancia esto ayudará con la legibilidad de la aplicación más que el uso regiones hará.

En lo personal yo no recomendaría hacer regiones de código parte de su convención de código. La razón principal es que regiones ocultan código , lo que podría dar lugar a problemas como:

  • Los desarrolladores puede pasar por alto algunos importantes parte del código fuente
  • El promedio cantidad de LOC en el mismo archivo tiende a aumentar

Si está interesado en la aplicación de una convención de estilo de codificación en su equipo, echar un vistazo a Microsoft StyleCop . Tenga en cuenta que la herramienta actualmente sólo funciona para C #.

#region Lotsa boring code and lookup tables

Yo lo uso para ahorrar espacio en pantalla, nada más:)

Yo uso las siguientes regiones:

Private Member Variables
Constructor
Public Properties
Private Methods
Public Methods
Events

La razón es debido a una mejor organización de código.
Yo trabajo con los archivos que pueden tener más de 2000 líneas de código y es muy difícil mantener el código sin regiones.

Creo que no es necesario en las regiones. Ellos no son legibles. Si necesita (piensa, hacer realmente necesario?) Un código de cantidad en su clase, puede utilizar 'parcial' de clase para dividir las unidades lógicas clase.

pensar en ellos como otra forma de comentarios: información adicional mezclado con su código, que tiene ningún tipo de verificación formales realizados en él . Por lo tanto, es probable que la deriva fuera de fecha con el código.

Así que nunca duplicar en los comentarios o directivas región lo que ya se indica en el código.

Sólo añadir información adicional.

En particular, el uso de regiones para reafirmar el hecho de que ciertos miembros son propiedades, eventos, etc., es completamente inútil. El problema más común es que no se crea una región de "métodos privados", y después se edita uno de ellos para que sea público. Ahora usted tiene que moverlo, lo que significa que en un diff con la versión anterior, el simple cambio es mucho más difícil de discernir.

Quizás se encuentre interesado en este no le hará ningún dice a C # regiones .

creo que mientras eres consistente al otro lado de su proyecto no importa demasiado lo que usted pide en escribir. También tener mucho cuidado con el uso excesivo de muy ellas (de ahí el enlace inicial!).

No hay nada peor que encontrar una región constructor cerrado que se esconde una sola línea de código.

Yo creo que al final es a gusto personal. Como he dicho, la consistencia es la clave!

escribí mi propio fragmento de código de región para VS 2008, que siempre uso:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
    <Header>
        <Title>#class region</Title>
        <Shortcut>#classregion</Shortcut>
        <Description>Code snippet for #region in classes</Description>
        <Author>Simon Linder</Author>
        <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
            <SnippetType>SurroundsWith</SnippetType>
        </SnippetTypes>
    </Header>
    <Snippet>
        <Declarations>
            <Literal>
                <ID>name</ID>
                <ToolTip>Region name</ToolTip>
                <Default>MyRegion</Default>
            </Literal>
        </Declarations>
        <Code Language="csharp">
            <![CDATA[#region Variables
                    $selected$ $end$
                #endregion

            #region Construction/Destruction
                    $selected$ $end$
                #endregion

            #region Properties
                    $selected$ $end$
                #endregion

            #region Public Methods 
                    $selected$ $end$
                #endregion

            #region Private/Proteced Methods
                    $selected$ $end$
                #endregion]]>
        </Code>
    </Snippet>
</CodeSnippet>

Como se puede ver que hago uso de las regiones de métodos Variables, Construction/Destruction, Properties, Public y Private. A menudo añadir otro sub-región en la región privada llamada events. El orden de las regiones también funciona bien con StyleCop .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top