Exercice - Supprimer les blocs de code des instructions if

Terminé

Les développeurs de logiciels l’aiment quand ils peuvent écrire du code qui enregistre les séquences de touches et l’espace visuel sans sacrifier la lisibilité. Appliquez uniquement l’expression « moins est plus » dans le processus de développement lorsqu’il rend votre code plus lisible et compréhensible.

Si un bloc de code ne nécessite qu’une seule ligne de code, il est probable que vous n’avez pas besoin de définir un bloc de code formel à l’aide d’accolades. Bien que techniquement, vous n’avez même pas besoin de séparer votre code en plusieurs lignes, la combinaison d’instructions sur une seule ligne peut rendre votre code difficile à lire.

La suppression des accolades comme décrit ci-dessus est une modification stylistique qui ne doit pas affecter les fonctionnalités de votre code. Toutefois, vous devez prendre des mesures pour vous assurer que vos modifications n’ont pas d’impact négatif sur la lisible du code. Vous pouvez évaluer l’impact de la suppression des accolades et de l’espace blanc, puis revenir au code d’origine si vous constatez que les modifications apportées à votre code sont moins lisibles.

Créer un exemple d’instruction if qui utilise un bloc de code

  1. Assurez-vous d’avoir un fichier Program.cs vide ouvert dans Visual Studio Code.

    Si nécessaire, ouvrez Visual Studio Code, puis effectuez les étapes suivantes pour préparer un fichier Program.cs dans l’Éditeur :

    1. Dans le menu Fichier , sélectionnez Ouvrir le dossier.

    2. Utilisez la boîte de dialogue Ouvrir le dossier pour accéder au dossier CsharpProjects et l’ouvrir.

    3. Dans le panneau Explorateur de Visual Studio Code, sélectionnez Program.cs.

    4. Dans le menu Sélection de Visual Studio Code, sélectionnez Sélectionner tout, puis appuyez sur la touche Supprimer.

  2. Tapez le code suivant dans l’Éditeur Visual Studio Code :

    bool flag = true;
    if (flag)
    {
        Console.WriteLine(flag);
    }
    
  3. Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code.

    Entrez dotnet run à partir de l’invite de commandes du Terminal pour exécuter votre code.

  4. Vérifiez que la sortie suivante s’affiche :

    True
    

    Votre code représente un bon point de départ, mais vous disposez d’un bloc de code qui inclut une seule ligne de code. Dans ce cas, la définition d’un bloc de code est-elle nécessaire ?

Supprimer les accolades

Le code ci-dessus exécute un bloc de code quand flag c’est true. Étant donné que ce bloc de code contient une seule ligne de code, vous avez la possibilité de supprimer les accolades.

  1. Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :

    bool flag = true;
    if (flag)
        Console.WriteLine(flag);
    

    Remarque

    La suppression des accolades ne modifie pas le fait qu’il Console.WriteLine(flag); s’agit du bloc de code de l’instruction if .

  2. Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code.

  3. Notez que la sortie est la même que précédemment.

    La sortie suivante doit toujours s’afficher :

    True
    

    Toutefois, il y a deux lignes de code moins nombreuses. Plus important encore, avec la ligne de code située sous le if retrait, votre code est toujours facilement lisible.

Examiner la lisibilité du formulaire à ligne unique si des instructions

Dans cette étape, vous allez examiner un cas où la lisibilité du code peut être affectée négativement.

Étant donné que l’instruction et l’appel if de méthode à Console.WriteLine() sont courts, vous pouvez être tenté de les combiner sur une seule ligne. Après tout, la syntaxe C# de l’instruction if vous permet de combiner des instructions de cette façon.

  1. Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :

    bool flag = true;
    if (flag) Console.WriteLine(flag);
    
  2. Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code.

  3. Notez que la sortie est toujours la même.

  4. Prenez une minute pour prendre en compte la lisibilité du code.

    Imaginez les deux exemples de code précédents imbriqués dans une plus grande section de code. La combinaison d’instructions de code (comme vous l’avez fait à l’étape 4) pourrait compliquer la lecture.

    Lors de l’implémentation d’une if instruction qui inclut un bloc de code à instruction unique, Microsoft vous recommande de prendre en compte ces conventions :

    • N’utilisez jamais de formulaire à ligne unique (par exemple : si (indicateur) Console.WriteLine(flag) ;
    • L’utilisation d’accolades est toujours acceptée et requise si un bloc d’une instruction if/else if/.../else composée utilise des accolades ou si un corps d’instruction unique s’étend sur plusieurs lignes.
    • Les accolades peuvent être omises uniquement si le corps de chaque bloc associé à une instruction if/else if/.../else composée est placé sur une seule ligne.
  5. Pour examiner l’impact de lisibilité pour les constructions if-elseif-else plus volumineuses, mettez à jour votre code comme suit :

    string name = "steve";
    if (name == "bob") Console.WriteLine("Found Bob");
    else if (name == "steve") Console.WriteLine("Found Steve");
    else Console.WriteLine("Found Chuck");
    
  6. Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code.

    Lorsque vous exécutez le code, il doit produire la sortie suivante :

    Found Steve
    

    Le code s’exécute, mais ces lignes de code sont denses et difficiles à lire. Vous souhaiterez peut-être reformater le code pour inclure un saut de ligne après les instructions et else les ifinstructionselse if.

  7. Comparez le code que vous venez d’exécuter avec le code suivant :

    string name = "steve";
    
    if (name == "bob")
        Console.WriteLine("Found Bob");
    else if (name == "steve") 
        Console.WriteLine("Found Steve");
    else
        Console.WriteLine("Found Chuck");
    

    Notez combien il est plus facile de lire le deuxième exemple de code.

Récapitulatif

Voici quelques points importants à mémoriser sur les blocs de code d’instruction if et la lisibilité :

  • Si vous réalisez que vous n’avez qu’une seule ligne de code répertoriée dans les blocs de code d’une if-elseif-else instruction, vous pouvez supprimer les accolades du bloc de code et de l’espace blanc. Microsoft recommande que les accolades soient utilisées de manière cohérente pour tous les blocs de code d’une if-elseif-else instruction (présents ou supprimés de manière cohérente).
  • Supprimez uniquement les accolades d’un bloc de code lorsqu’il rend le code plus lisible. Il est toujours acceptable d’inclure des accolades.
  • Supprimez uniquement le flux de ligne s’il rend le code plus lisible. Microsoft suggère que votre code sera plus lisible lorsque chaque instruction est placée sur sa propre ligne de code.