Ćwiczenie — usuwanie bloków kodu z instrukcji if

Zakończone

Deweloperzy oprogramowania uwielbiają, gdy mogą pisać kod, który zmniejsza liczbę naciśnięć klawiszy i oszczędza miejsce na ekranie, nie tracąc przy tym czytelności. Zastosuj tylko frazę "mniej jest więcej" w procesie programowania, gdy sprawia, że kod jest bardziej czytelny i zrozumiały.

Jeśli blok kodu wymaga tylko jednego wiersza kodu, szanse są, że nie musisz definiować formalnego bloku kodu przy użyciu nawiasów klamrowych. Chociaż technicznie nie trzeba nawet rozdzielać kodu na wiele wierszy, łączenie instrukcji w jednym wierszu może sprawić, że kod będzie trudny do odczytania.

Usunięcie nawiasów klamrowych zgodnie z powyższym opisem jest zmianą stylistyczną, która nie powinna mieć wpływu na funkcjonalność kodu. Należy jednak podjąć kroki, aby upewnić się, że zmiany nie wpływają negatywnie na czytelność kodu. Możesz ocenić wpływ usuwania nawiasów klamrowych i białych znaków, a następnie przywrócić oryginalny kod, jeśli okaże się, że zmiany wprowadzone w kodzie są mniej czytelne.

Tworzenie przykładu instrukcji if używającej bloku kodu

  1. Upewnij się, że masz pusty plik Program.cs otwarty w programie Visual Studio Code.

    W razie potrzeby otwórz program Visual Studio Code, a następnie wykonaj następujące kroki, aby przygotować plik Program.cs w edytorze:

    1. W menu Plik wybierz pozycję Otwórz folder.

    2. Użyj okna dialogowego Otwórz folder, aby przejść do folderu CsharpProjects , a następnie go otworzyć.

    3. W panelu Eksplorator programu Visual Studio Code wybierz pozycję Program.cs.

    4. W menu Wybór programu Visual Studio Code wybierz pozycję Wybierz wszystko, a następnie naciśnij Delete.

  2. Wpisz następujący kod w edytorze programu Visual Studio Code:

    bool flag = true;
    if (flag)
    {
        Console.WriteLine(flag);
    }
    
  3. Zapisz plik kodu, a następnie uruchom kod przy użyciu programu Visual Studio Code.

    Wprowadź dotnet run polecenie w wierszu polecenia terminalu, aby uruchomić kod.

  4. Sprawdź, czy są wyświetlane następujące dane wyjściowe:

    True
    

    Kod reprezentuje dobry punkt wyjścia, ale masz blok kodu zawierający pojedynczy wiersz kodu. W takim przypadku konieczne jest zdefiniowanie bloku kodu?

Usuń nawiasy klamrowe

Powyższy kod wykonuje blok kodu, gdy flag ma wartość true. Ponieważ ten blok kodu zawiera pojedynczy wiersz kodu, możesz usunąć nawiasy klamrowe.

  1. Zaktualizuj kod w edytorze programu Visual Studio Code w następujący sposób:

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

    Uwaga / Notatka

    Usunięcie nawiasów klamrowych nie zmienia faktu, że Console.WriteLine(flag); jest to blok kodu dla instrukcji if .

  2. Zapisz plik kodu, a następnie uruchom kod przy użyciu programu Visual Studio Code.

  3. Zwróć uwagę, że dane wyjściowe są takie same jak poprzednio.

    Powinny zostać wyświetlone następujące dane wyjściowe:

    True
    

    Jednak są dwa wiersze kodu mniej. Co najważniejsze, przy użyciu wiersza kodu poniżej wcięcia if kod jest nadal łatwo czytelny.

Sprawdź czytelność instrukcji if w postaci jednowierszowej

W tym kroku przyjrzysz się przypadkowi, w którym może mieć negatywny wpływ na czytelność kodu.

Ponieważ zarówno if instrukcja, jak i wywołanie Console.WriteLine() metody są krótkie, możesz być skłonny połączyć je na jednej linii. W końcu składnia języka C# dla instrukcji if umożliwia łączenie instrukcji w ten sposób.

  1. Zaktualizuj kod w edytorze programu Visual Studio Code w następujący sposób:

    bool flag = true;
    if (flag) Console.WriteLine(flag);
    
  2. Zapisz plik kodu, a następnie uruchom kod przy użyciu programu Visual Studio Code.

  3. Zwróć uwagę, że dane wyjściowe są nadal takie same.

  4. Poświęć minutę, aby przemyśleć czytelność kodu.

    Wyobraź sobie dwa poprzednie przykłady kodu zagnieżdżone w większej sekcji kodu. Łączenie poleceń w kodzie (tak jak zrobiono to w kroku 4) może utrudnić czytelność.

    Podczas implementowania instrukcji if zawierającej blok kodu z jedną instrukcją firma Microsoft zaleca rozważenie następujących konwencji:

    • Nigdy nie używaj jednowierszowej formy (na przykład: if (flaga) Console.WriteLine(flaga);
    • Używanie nawiasów klamrowych jest zawsze akceptowane i wymagane, jeśli dowolny blok w instrukcji złożonej if/else if/.../else używa nawiasów klamrowych lub jeśli pojedyncza treść instrukcji obejmuje wiele wierszy.
    • Nawiasy klamrowe mogą zostać pominięte tylko wtedy, gdy treść każdego bloku skojarzonego z instrukcją złożoną if/else if/.../else jest umieszczona w jednym wierszu.
  5. Aby sprawdzić wpływ czytelności na większe konstrukcje if-elseif-else, zaktualizuj kod w następujący sposób:

    string name = "steve";
    if (name == "bob") Console.WriteLine("Found Bob");
    else if (name == "steve") Console.WriteLine("Found Steve");
    else Console.WriteLine("Found Chuck");
    
  6. Zapisz plik kodu, a następnie uruchom kod przy użyciu programu Visual Studio Code.

    Po uruchomieniu kodu powinien on wygenerować następujące dane wyjściowe:

    Found Steve
    

    Kod jest uruchamiany, ale te wiersze kodu są gęste i trudne do odczytania. Możesz ponownie sformatować kod, aby uwzględnić podział wiersza po instrukcjach if, else if i else.

  7. Porównaj właśnie uruchomiony kod z następującym kodem:

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

    Zwróć uwagę, ile łatwiej jest odczytać drugi przykład kodu.

Podsumowanie

Oto kilka ważnych kwestii, o których warto pamiętać w kontekście if bloków poleceń kodu oraz ich czytelności:

  • Jeśli zdasz sobie sprawę, że w blokach kodu if-elseif-else instrukcji znajduje się tylko jeden wiersz kodu, możesz usunąć nawiasy klamrowe bloku kodu i białe znaki. Firma Microsoft zaleca spójne stosowanie nawiasów klamrowych dla wszystkich bloków kodu w instrukcji if-elseif-else (czy są one obecne, czy konsekwentnie usunięte).
  • Usuń nawiasy klamrowe bloku kodu tylko wtedy, jeśli zwiększa to czytelność kodu. Dopuszczalne jest zawsze uwzględnianie nawiasów klamrowych.
  • Tylko usuń znak nowego wiersza, jeśli sprawia, że kod jest bardziej czytelny. Firma Microsoft sugeruje, że twój kod będzie bardziej czytelny, gdy każda instrukcja zostanie umieszczona we własnym wierszu kodu.