Les conventions du C# pour un code plus propre et lisible !

Dans ce tutoriel nous allons voir les conventions du C# pour un code plus propre et lisible !

Les conventions du C# pour un code plus propre et lisible !

Dans ce tutoriel nous allons voir les conventions du C# pour un code plus propre et lisible !

Crée le 17 avr. 2021

Qu'est-ce qu'une convention de code?

C'est une règle appliquée à un langage de programmation qui permet aux développeurs de garder un style constant peu importe le projet.

Certaines conventions sont plus souples que d'autres, et certains développeurs peuvent avoir leurs propres styles d'écriture. Elles ne sont généralement pas forcées pour compiler du code (sauf avec utiliser d'un Linter).

Les conventions de base du C#

Le C# utilise deux types de cases: le PascalCase, où chaque mot à une majuscule (ex: MaSuperClasse) et le camelCase, où le premier mot commence avec une minuscule, et les suivants avec une majuscule (ex: maVariableLocale).

Les classes, structures, méthodes, propriétées et namespace sont à nommer en PascalCase.

Les variables locales, paramètres de méthodes, et champs privés sont en camelCase.

Additionnellement, certains développeurs ajoutent un tiret du bas avant les noms de champs privés. Ceci n'est pas nécessaire.

Pour les variables locales, il est utile d'utiliser var à la place du type de la variable. Cela est plus rapide et lisible. Vous pouvez mettre le type de la variable directement si le code ne démontre pas le vrai type facilement. Contrairement à ce qui est pensé, il n'y a aucun coût en performance.

using System;

namespace MySandboxAddon
{
    public class SandboxAddon
    {
        private int _monChamp;
        
        public int MaPropriete { get { return _monChamp } }

        public void PrintProperty()
        {
            Console.WriteLine($"Property: {MaPropriete}");
        }
        
        public int AddInt(int firstInt, int secondInt)
        {
            var result = firstInt + secondInt;
            return result;
        }
    }
}

Rendre les expressions longues lisibles

Il vous arrivera très certainement de finir avec des conditions assez longues, ou des méthodes enchainées comme les méthodes de LINQ. Voici un assez bon exemple d'une mise en page propre pour ces conditions:

public List<object> GetMyObjects()
{
    if (myFirstCondition && mySecondCondition
        && SomeOtherCondition() || GetSomeInt() + 1 > 35
        && isReady)
    {
        DoSomething();
        return myObjectList.Select(t => t.Object)
            .Where(o => o is ConditionalObject)
            .ToList();
    }
    
    return new List<object>();
}

Comme vu ici, enchainer les méthodes LINQ ligne par ligne donne un rendu propre, ainsi que d'éviter d'avoir des lignes trop longues en ajoutant des nouvelles lignes.

Le C# est un langage qui ignore le whitespace, c'est-à-dire les espaces et lignes inutiles à la compilation du code.

Nommer ses classes, méthodes et variables.

Lorsque vous nommez vos objets, faites en sorte de leur donner un nom qui explique simplement leur utilité. Disons que j'ai une classe qui s'occupe d'enregistrer les commandes:

public class CommandRegistry
{
}

Le registre des commandes. Simple, non?

Une méthode qui vérifie que le registry contient une commande avec un nom en particulier? Donnez-lui un nom qui agit comme "question":

public bool HasCommand(string name)
{
}

HasCommand(), IsReady(): ces noms sont parfaits pour des méthodes qui retournent un booléen.

Gardez des noms qui sont explicatifs pour les variables importantes:

// foundCommands: les commandes trouvées. Comme c'est au pluriel, je m'attends à une liste!
var foundCommands = GetCommandsByName("ban");

// isReady, probablement un booléen vu le nom.
var isReady = IsReady();

// commandCount, peut être un nombre.
var commandCount = foundCommands.Count();

Pour les expressions lambda, itérations et autres, il est acceptable de garder des noms courts, voir une seule lettre.

var found = commands.FirstOrDefault(c => c.Name == "ban");

for (int i = 0; i < commands.Length; i++)
{
}

Commentaires

Les commentaires sont simples. Ajoutez un espace après l'opérateur.

// Good comment >:]
//Bad comment >:[

/*
 Multiline comment. 
 This looks nice.
 */
 
 /*
  * Also works.
  * Not bad at all.
  */

Tip: vous pouvez taper /// au-dessus d'une classe, méthode, propriétés et autres pour insérer un commentaire de documentation. Ceux-ci peuvent être utilisés pour générer de la documentation automatiquement plus tard.

Si vous avez des questions, n'hésitez pas à nous rejoindre sur le Discord de GCA

Envie de lire la suite de ce tutoriel ?

Connecte-toi dès maintenant, et accède entièrement à tous les tutoriels de GCA !

#C#

#dev

Écrit par Erlite#1337

6

Sommaire