Question

J'apprécie vraiment la possibilité de définir des régions dans votre code, car il améliore la lisibilité insensément.

Quoi qu'il en soit, je voudrais que tout le monde en utilisant la même convention dans toutes les classes (avec l'ordre prédéfini de toutes les régions) comme:

  • Domaines privés
  • Constructors
  • Propriétés de la classe
  • Event Handlers
  • etc ...

Avez-vous une proposition comment et dans quel ordre les définir cette division pourrait ressembler (si ils ont quelles régions ont le sens et quels noms)?

Était-ce utile?

La solution

Ma convention est de ne pas les utiliser.

Si vous trouvez votre classe obtenir trop gros ce que vous avez besoin de se cacher de vastes parties de celui-ci à travers des régions que je propose votre classe est trop complexe et doit être brisée.

Autres conseils

Quelqu'un a dit que d'avoir une convention comme celle-ci:

  
      
  • Domaines privés
  •   
  • Constructors
  •   
  • Propriétés de la classe
  •   
  • Event Handlers
  •   
  • etc ...
  •   

est comme paramètre une table où toutes les plaques sont ensemble, toutes les cuillères sont ensemble, tous les couteaux sont ensemble et toutes les fourches sont ensemble.

Mon point de vue sur la question de #region est de mettre les méthodes connexes, les définitions d'événements et propriétés ensemble dans une région. Cependant, avoir à faire cela tout indique une odeur de code (soit votre classe est trop grand ou fait trop de choses), mais cela est une bonne première étape dans la refactorisation dans une meilleure classe.

Chaque fois que je vois des régions, je pense que le code est généré ou dans le besoin de refactoring.

Évitez de les utiliser et quand vous vous sentez le besoin d'eux, de réexaminer ce que vous faites et essayez de diviser votre classe pour les plus petits. En fin de compte cela aidera à la lisibilité de l'application plus que l'utilisation des régions sera.

Personnellement, je ne recommanderais pas rendre les régions de code partie de votre convention de code. La raison principale étant que les régions cachent code , ce qui pourrait conduire à des problèmes tels que:

  • Les développeurs pourraient manquer une importante une partie du code source
  • La moyenne montant de LOC dans le même fichier tend à augmenter

Si vous êtes intéressé par l'application d'une convention de style de codage dans votre équipe, consultez la page Microsoft StyleCop . Notez que l'outil ne fonctionne actuellement que pour C #.

#region Lotsa boring code and lookup tables

Je l'utilise pour enregistrer écran immobilier, rien d'autre:)

J'utilise les régions suivantes:

Private Member Variables
Constructor
Public Properties
Private Methods
Public Methods
Events

La raison en est que d'une meilleure organisation du code.
Je travaille avec des fichiers qui peuvent avoir plus de 2000 lignes de code et il est très difficile de maintenir le code sans régions.

Je pense qu'il n'y a pas besoin dans les régions. Eux ne sont pas lisibles. Si vous avez besoin (pensez, avez-vous besoin vraiment?) Un code de montant dans votre classe, vous pouvez utiliser la classe « partielle » pour diviser les unités logiques de classe.

Pensez à eux comme une autre forme de commentaires: informations supplémentaires mélangées avec votre code, qui a pas de vérification formelle effectuée sur elle . Par conséquent, il dérivera probablement à jour avec le code.

dupliquer jamais dans les commentaires ou directives de la région ce qui est déjà indiqué dans le code.

ajouter uniquement des informations supplémentaires.

En particulier, en utilisant les régions retraiter le fait que certains membres sont des propriétés, des événements, etc. est tout à fait inutile. Le problème le plus commun, il est que vous créez une région pour « méthodes privées », puis vous modifiez un d'entre eux pour le rendre public. Maintenant, vous devez le déplacer, ce qui signifie que dans un diff avec l'ancienne version, le simple changement est beaucoup plus difficile à discerner.

Vous pourriez être intéressé par cet dites-vous pas à c # régions .

Je pense que tant que vous êtes en accord accross votre projet, il n'a pas d'importance trop que vous commandez les écrire. Aussi être très très prudent de les surutilisation (d'où le lien initial!).

Il n'y a rien de pire que de trouver une région constructeur fermée qui cache une seule ligne de code.

Je pense à la fin il est goût personnel. Comme je l'ai dit, la cohérence est la clé!

J'ai écrit mon propre extrait de code région pour VS 2008 que j'utilise toujours:

<?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>

Comme vous pouvez le voir j'utiliser des régions pour Variables, Construction/Destruction, Properties, méthodes de Public et Private. J'ajoute souvent une autre sous-région dans la région privée appelée events. L'ordre des régions fonctionne aussi bien avec StyleCop .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top