27 votes

Devriez-vous utiliser le modificateur d'accès privé s'il est redondant?

Étant donné que ces deux exemples sont équivalents, lequel pensez-vous est préférable?

Sans modificateur explicite

 public class MyClass
{

    string name = "james";

    public string Name {
        get { return name; }
        set { name = value; }
    }

    void SomeMethod() { ... }

}
 

Avec modificateur explicite

 public class MyClass
{

    private string name = "james";

    public string Name {
        get { return name; }
        set { name = value; }
    }

    private void SomeMethod() { ... }

}
 


J'ai toujours utilisé ce dernier, mais récemment j'ai commencé à adopter l'ancien style. Le privé est redondant car c'est le modificateur d'accesseur par défaut, donc cela n'a-t-il pas de sens de l'exclure?

38voto

Nicholas Mancuso Points 5459

Je pense que l'explicité déclarant privé aide à la lisibilité. Cela ne permettra pas à un programmeur d'interpréter sa visibilité différemment.

25voto

Olmo Points 1928

Il semble que nous sommes le seul, mais personnellement, je soutiens la nous allons les supprimer privé campagne

Mon souci est que publics et privés sont tellement similaires, 6-7 caractères, bleu, en commençant par "p", alors il est beaucoup plus difficile à point une méthode publique entre 10 explicites que celles du secteur privé qu'entre 10 qui n'ont pas d'accéder à un attribut.

Aussi, c'est un avantage car les gens paresseux dans votre équipe ont tendance à enregistrer l'écriture de la touche de modification et de faire la méthode privée, qui est en fait une bonne chose. Sinon vous vous retrouvez avec tout public.

D'habitude, je préfère explicite, plus implicite, mais qui est plus important en langue coin des cas (délicat cheats) que dans une caractéristique très répandue. Je pense ici à long échelon de maintenabilité, c'est plus important.

Aussi, j'ai l'habitude lorsque le code, c'est simple et clair en mathématiques de façon plus lorsque le code est explicite dans le but de préserver l'avenir du codeur de l'ignorance. C'est le VB moyen de ne pas en C#...

17voto

Kyralessa Points 76456

J'ai toujours l'omettre pour réduire l'encombrement visuel. En C#, tout est par défaut le moins de visibilité possible. Un membre de la classe (champ, une méthode, une propriété) par défaut privées. Une classe par défaut interne. Une classe imbriquée par défaut privées.

Si vous besoin de quelque chose pour être plus visible, puis ajouter le modificateur. Cela rend plus facile de voir les éléments qui s'écartent de la visibilité par défaut.

Le seul cas que je vois à l'origine des problèmes est que si vous venez d'un VB .NET fond. Mais bon, je viens d'une VB .NET fond, et je sais encore ce que la valeur par défaut de la visibilité sont en C#.

Dans VB .NET, d'autre part, j'ai toujours l'inclure, car les valeurs par défaut sont plutôt stupide; la valeur par défaut pour un Sub ou la Fonction est - Friend plutôt que d' Private.

16voto

Marc Gravell Points 482669

Le marquer comme privé indique clairement qu'il est délibéré, plutôt que «je n'y ai pas vraiment pensé, donc je ne sais pas si ce serait mieux comme autre chose.»; donc j'aime le rendre explicite. Mais je ne serais pas religieux à ce sujet.

Aussi - cela évite d'avoir à se souvenir des règles ... les membres sont privés par défaut, les types (externes) sont internes par défaut; les types imbriqués sont privés par défaut ...

Faites-le clair ... rendez-le explicite ;-p

4voto

Mark Brackett Points 46824

Personnellement, je préfère le modificateur privé - j'aime l'explicitness. Pour les champs, il souligne également qu'il s'agit d'une variable membre par opposition à une variable de fonction (la seule différence sinon est l'emplacement - ce qui est correct si les gens peuvent indenter correctement, mais peuvent être source de confusion sinon).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X