Вправа – видалення блоків коду з операторів IF

Завершено

Розробники програмного забезпечення люблять його, коли вони можуть писати код, який зберігає натискання клавіш і візуальний простір, не жертвуючи читабельністю. Застосуйте фразу "менше більше" в процесі розробки, коли вона робить код зручнішим і зрозумілішим.

Якщо блок коду потребує лише одного рядка коду, імовірно, вам не потрібно визначати формальний блок коду за допомогою фігурних фігурних фігурних дужк. Хоча технічно вам навіть не потрібно розділяти код на кілька рядків, поєднання інструкцій в одному рядку може ускладнювати читання коду.

Видалення фігурних фігурних дужок, як описано вище, – це стилістична зміна, яка не має впливати на функціональність коду. Однак слід вжити заходів, щоб ваші зміни не вплинули на те, наскільки код доступний для читання. Ви можете оцінити вплив видалення фігурних фігурних фігурних дужк і пробілу, а потім повернутися до вихідного коду, якщо виявиться, що зміни зробили код менш доступним для читання.

Створення прикладу оператора IF, у якому використовується блок коду

  1. Переконайтеся, що в коді Visual Studio відкрито пустий файл Program.cs.

    За потреби відкрийте Visual Studio Code і виконайте наведені нижче дії, щоб підготувати файл Program.cs в редакторі.

    1. У меню Файл виберіть Відкрити папку.

    2. Перейдіть до діалогового вікна Відкрити папку, а потім відкрийте папку CsharpProjects .

    3. На панелі Visual Studio Code EXPLORER виберіть Program.cs.

    4. У меню Вибір коду Visual Studio виберіть виділити все, а потім натисніть клавішу Delete.

  2. Введіть такий код у редактор коду Visual Studio:

    bool flag = true;
    if (flag)
    {
        Console.WriteLine(flag);
    }
    
  3. Збережіть кодовий файл, а потім за допомогою коду Visual Studio запустіть код.

    Введіть у dotnet run командному рядку термінала, щоб запустити код.

  4. Переконайтеся, що відображається такий результат:

    True
    

    Код позначає гарну відправну точку, але у вас є блок коду, який містить один рядок коду. У такому разі потрібно визначити блок коду?

Видалення фігурних фігурних дужок

Наведений вище код виконує блок коду, коли flag є true. Оскільки цей блок коду містить один рядок коду, можна видалити фігурні фігурні дужки.

  1. Оновіть код у редакторі коду Visual Studio, як показано нижче.

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

    Примітка

    Видалення фігурних фігурних дужок не змінює факту, що Console.WriteLine(flag); є блоком коду для if інструкції.

  2. Збережіть кодовий файл, а потім за допомогою коду Visual Studio запустіть код.

  3. Зверніть увагу, що вивід такий самий, як і раніше.

    Ви все одно побачите такий результат:

    True
    

    Однак код менше двох рядків. Найголовніше, що код під відступом дає змогу if легко прочитати код.

Перевірка зручності читання однорядкової форми, якщо оператори

На цьому кроці ви поглянете на випадок, коли на зручність читання коду може негативно вплинути.

Оскільки і інструкція if , і метод виклику Console.WriteLine() короткі, у вас може виникнути спокуса об'єднати їх в одному рядку. Зрештою, синтаксис C# для інструкції дає змогу if об'єднувати інструкції таким чином.

  1. Оновіть код у редакторі коду Visual Studio, як показано нижче.

    bool flag = true;
    if (flag) Console.WriteLine(flag);
    
  2. Збережіть кодовий файл, а потім за допомогою коду Visual Studio запустіть код.

  3. Зверніть увагу, що результати все одно однакові.

  4. Поміркуйте над зручністю читання коду за хвилину.

    Уявіть собі два попередні зразки коду, вкладені в більшу частину коду. Поєднання інструкцій коду (як на кроці 4) може ускладнити читання.

    Під час реалізації if інструкції, яка містить блок коду з одним оператором, корпорація Майкрософт рекомендує розглянути ці конвенції:

    • Ніколи не використовуйте однорядкову форму (наприклад, якщо (позначка) Console.WriteLine(позначка);
    • Використання фігурних дужок завжди приймається та вимагається, якщо в будь-якому блоці інструкції if/else якщо/.../else складені фігурні дужки або якщо один текст інструкції охоплює кілька рядків.
    • Фігурні дужки можна пропустити, лише якщо тіло кожного блоку, пов'язаного з оператором if/else if/.../else, розміщено в одному рядку.
  5. Щоб перевірити вплив на зручність читання для більших конструкцій if-elseif-else, оновіть код таким означає:

    string name = "steve";
    if (name == "bob") Console.WriteLine("Found Bob");
    else if (name == "steve") Console.WriteLine("Found Steve");
    else Console.WriteLine("Found Chuck");
    
  6. Збережіть кодовий файл, а потім за допомогою коду Visual Studio запустіть код.

    Коли ви запускаєте код, він має призвести до такого виводу:

    Found Steve
    

    Код запускається, але ці рядки коду щільні і важко читати. Можна переформатувати код, щоб додати розрив рядка після if, else ifі else операторів.

  7. Порівняйте код, який ви щойно забігли, з таким кодом:

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

    Зверніть увагу, наскільки простіше прочитати другий зразок коду.

Повторити введення

Ось кілька важливих речей, які слід пам'ятати про if блоки коду оператора та зручність читання.

  • Якщо ви розумієте, що в кодових блоках if-elseif-else інструкції відображається лише один рядок коду, ви можете видалити фігурні дужки блока коду та пробіли. Корпорація Майкрософт рекомендує послідовно використовувати фігурні дужки для всіх блоків if-elseif-else коду інструкції (постійно присутні або видалені).
  • Видаліть фігурні дужки блока коду, лише коли він робить код зручнішим для читання. Завжди прийнятно включати фігурні дужки.
  • Видаліть канал рядка, лише якщо він робить код зручнішим для читання. Корпорація Майкрософт припускає, що код буде більш доступний для читання, коли кожну інструкцію буде розміщено в окремому коді.