2008-12-28 10 views
1

Lors de l'utilisation properies implemnted auto commeC# - Utilisation des propriétés mises en œuvre automatiques et les conventions de nommage

MyProperty public string {get; ensemble; }

C'est génial jusqu'à ce que vous arriviez à des conventions de nommage.

J'utilise pour souligner les champs de niveau de classe ie

chaîne _MyProperty;

Ainsi, avec la mise en œuvre automatique signifie qu'il n'est pas évident de savoir quelle est la variable et sa portée.

Si vous obtenez mon sens, des pensées?

Malcolm

Edit: Comme la propriété est publique, vous ne voulez pas utiliser un underscore soit. PascalCasing vous indique son niveau de classe AND public.

Répondre

0

vous n'avez pas besoin du _ lorsque vous utilisez les propriétés automatiques et un IDE moderne (comme Visual Studio). IntelliSense fonctionnera correctement si vous utilisez des propriétés automatiques et des visibilités différentes. le compilateur le vérifiera également.

public string SomeString { private set; get; } 

    private string some2string; 

    public string Some3string { set; get; } 

Cela signifie que SomeString est uniquement accessible en écriture interne. vous n'obtiendrez pas la propriété en dehors de la classe. donc pas de magie _ etc

Si vous avez une propriété vraiment de classe seulement, alors il n'y a pas besoin de faire une propriété, faites juste un champ.

0

La propriété elle-même est publique. Le compilateur génère des champs privés pour votre propriété. Puisque les propriétés implémentées automatiquement ne sont pas supportées nativement par MSIL. Mais comme les champs privés sont générés par le compilateur, vous n'avez jamais à les traiter directement.

Un grand livre sur les conventions de nommage est Framework Design Guidelines 2ème édition par Brad Abrams. link

Un excellent outil pour faire respecter les conventions de nommage est Stylecop

0
terrain/propriété

:

si vous utilisez juste « get, set » comme dans mon exemple, vous avez raison, ce qui devrait être la différence, mais, peut-être que vous ferez une tâche supplémentaire si quelqu'un appelle la propriété ou définit la propriété. peut-être que vous ferez une vérification sur la définition d'une propriété ou sur la mise à jour de l'état interne de l'objet.

Questions connexes