2

J'ai l'habitude d'ajouter un m_ devant les champs private et un s_ avant les membres static.L'analyse du code C# n'aime pas l'état statique protégé s_Foo (CA1709, CA1707)

Avec un code comme

protected static readonly Random s_Random = new Random(); 

Je reçois les avertissements suivants par l'analyse du code de VS2008:

  • CA1709: Microsoft.Naming: Corriger le boîtier de l '' Bar » nom de membre. s_Random 'en le changeant en' S '.
  • CA1707: Microsoft.Naming: supprime les traits de soulignement du nom de membre "Bar.s_Random".

Comment résoudre ce problème? Devrais-je simplement supprimer le s_? Ou ajouter une suppression globale pour cet avertissement?

Éditer: Mon entreprise manque de normes de codage, donc c'est à moi de les définir pour mon code. (Oui je sais ...)

Si vous pensez que s_ devrait être retiré en général, je serais heureux que vous fournissiez des sources officielles.

Répondre

8

Vous ne suivez pas la convention de dénomination .NET de Microsoft qui vous dit de ne pas préfixer quoi que ce soit. Si c'est vraiment ce que vous voulez, ajoutez une suppression. Sinon, suivez la directive en se débarrassant de s_ et d'autres préfixes similaires.

De Names of Type Members:
« noms de champs » Section: «Ne pas utiliser un préfixe pour les noms de champs, par exemple, ne pas utiliser g_ ou S_ de distinguer statique par rapport à des champs non statiques. »

0

Cela dépend de ce que vous voulez.

Si la stratégie de votre entreprise est de préfixer les membres statiques avec s_, vous devez supprimer l'avertissement et même ajouter votre propre règle.

Sinon, réparez-le aux normes de Microsoft et appelez votre membre Random.

0

m_ est un ancien standard pour la dénomination. Les conventions les plus récentes ne doivent pas suivre cette notation hongroise.

+0

À ma connaissance, il n'y a pas de consensus clair sur ce sujet. Pourriez-vous fournir quelques sources d'une dépréciation de m_? – mafu

+0

Oui, le .NET Framework. – Will

+1

@Will - ce qui est hilarant."Faites ce que nous disons, pas comme nous" - MS – cjk

0

C'est à vous de décider comment vous voulez le résoudre. Ignorez-le et conservez votre propre convention de dénomination ou suivez le standard Microsoft. Personnellement, je n'utilise aucun préfixe pour mes variables (donc ce serait 'random' au lieu de 's_Random' dans ce cas) donc j'irais avec ce dernier, mais si vous êtes vraiment à l'aise avec ça, alors personne ne vous force changer.

0
  • CA1709: protégé n'est pas privé et doit être en majuscules
  • CA1707: underscores ne sont pas selon ms convention de nommage