Pour couper une longue histoire courte: j'ai trouver la Java antipatterns une ressource indispensable. Pour les débutants autant que pour les professionnels. Je n'ai pas encore trouver quelque chose comme cela pour C#. Donc, je vais ouvrir cette question du wiki de la communauté et inviter tout le monde à partager leurs connaissances sur ce. Comme je suis novice en C#, je suis fortement intéressé par ce service, mais ne peut pas démarrer, avec quelques antipatterns :/
Voici les réponses que je trouve spécialement vrai pour C# et pas d'autres langues.
Je viens de copier/coller ces! Envisager de jeter un coup d'oeil sur les commentaires sur ces derniers aussi bien.
Jeter NullReferenceException
Jeter le mauvais exception:
if (FooLicenceKeyHolder == null)
throw new NullReferenceException();
Propriétés vs Variables publiques
Les variables publiques dans les classes (utilisation d'une propriété au lieu).
À moins que la classe est un simple Objet de Transfert de Données.
Ne pas comprendre que le booléen est un type réel, pas seulement une convention
if (myBooleanVariable == true)
{
...
}
ou, encore mieux
if (myBooleanVariable != false)
{
...
}
Construit comme ces derniers sont souvent utilisés par C
et C++
développeurs d'où l'idée d'une valeur booléenne était juste une convention (0 == false, autre chose est vraie); ce n'est pas nécessaire (ni souhaitable) en C# ou en d'autres langues qui ont de réelles valeurs booléennes.
À l'aide de using()
Ne faisant pas usage de using
le cas échéant:
object variable;
variable.close(); //Old code, use IDisposable if available.
variable.Dispose(); //Same as close. Avoid if possible use the using() { } pattern.
variable = null; //1. in release optimised away. 2. C# is GC so this doesn't do what was intended anyway.