Cvičení – odebrání bloků kódu z příkazů if
Vývojáři softwaru ho milují, když můžou psát kód, který šetří stisknutí kláves a vizuální prostor, aniž by museli obětovat čitelnost. Ve vývojovém procesu používejte pouze frázi "méně je více", když kód bude čitelnější a srozumitelnější.
Pokud blok kódu potřebuje jenom jeden řádek kódu, pravděpodobně nemusíte definovat formální blok kódu pomocí složených závorek. I když technicky vzato nemusíte kód rozdělit na několik řádků, kombinování příkazů na jednom řádku může ztěžovat čtení kódu.
Odebrání složených závorek, jak je popsáno výše, je stylistická změna, která by neměla mít vliv na funkčnost kódu. Měli byste ale podniknout kroky, abyste zajistili, že změny nebudou mít negativní vliv na čitelnost kódu. Můžete vyhodnotit dopad odebrání složených závorek a prázdných znaků a vrátit se zpět k původnímu kódu, pokud zjistíte, že změny udělaly váš kód méně čitelný.
Vytvoření příkladu příkazu if, který používá blok kódu
Ujistěte se, že máte v editoru Visual Studio Code otevřený prázdný soubor Program.cs.
V případě potřeby otevřete Visual Studio Code a pak následujícím postupem připravte soubor Program.cs v Editoru:
V nabídce Soubor vyberte Otevřít složku.
Pomocí dialogového okna Otevřít složku přejděte na složku CsharpProjects a otevřete ji.
Na panelu Průzkumník editoru Visual Studio Code vyberte Program.cs.
V nabídce Výběru editoru Visual Studio Code vyberte Vybrat vše a stiskněte klávesu Delete.
Do editoru visual studio Code zadejte následující kód:
bool flag = true; if (flag) { Console.WriteLine(flag); }Uložte soubor kódu a pak pomocí editoru Visual Studio Code spusťte svůj kód.
Zadáním
dotnet runz příkazového řádku terminálu spusťte kód.Ověřte, že se zobrazí následující výstup:
TrueVáš kód představuje dobrý výchozí bod, ale máte blok kódu, který obsahuje jeden řádek kódu. V tomto případě je nutné definovat blok kódu?
Odeberte složené závorky
Výše uvedený kód provede blok kódu, pokud flag je true. Vzhledem k tomu, že tento blok kódu obsahuje jeden řádek kódu, máte možnost odstranit složené závorky.
Následujícím způsobem aktualizujte kód v editoru visual Studio Code:
bool flag = true; if (flag) Console.WriteLine(flag);Poznámka:
Odebrání složených závorek nemění skutečnost, že
Console.WriteLine(flag);je blokem kódu pro výrazif.Uložte soubor kódu a pak pomocí editoru Visual Studio Code spusťte svůj kód.
Všimněte si, že výstup je stejný jako předtím.
Stále by se měl zobrazit následující výstup:
TrueExistuje však dva méně řádků kódu. Nejdůležitější je, že i s odsazením
ifje váš kód stále snadno čitelný.
Prozkoumejte čitelnost jednořádkových příkazů if
V tomto kroku se podíváte na případ, kdy může mít čitelnost kódu negativní dopad.
Vzhledem k tomu, že příkaz if i volání Console.WriteLine() metody jsou krátké, může být lákavé je zkombinovat na jednom řádku. Syntaxe jazyka C# pro příkaz if umožňuje tímto způsobem kombinovat příkazy.
Následujícím způsobem aktualizujte kód v editoru visual Studio Code:
bool flag = true; if (flag) Console.WriteLine(flag);Uložte soubor kódu a pak pomocí editoru Visual Studio Code spusťte svůj kód.
Všimněte si, že výstup je stále stejný.
Zvažte čitelnost kódu za chvilku.
Představte si předchozí dvě ukázky kódu vnořené do větší části kódu. Kombinování příkazů kódu (stejně jako v kroku 4) by mohlo znesnadnit čtení.
Při implementaci
ifpříkazu, který obsahuje blok kódu s jedním příkazem, společnost Microsoft doporučuje zvážit tyto konvence:- Nikdy nepoužívejte jednořádkový zápis (například: if (flag) Console.WriteLine(flag);
- Použití složených závorek je vždy přijato a vyžaduje se, pokud libovolný blok složeného příkazu if/else/.../else používá složené závorky nebo pokud jeden text příkazu pokrývá více řádků.
- Složené závorky mohou být vynechány pouze v případě, že je tělo každého bloku přidruženého k příkazu if/else if/.../else umístěné na jeden řádek.
Pokud chcete zkontrolovat dopad čitelnosti u větších konstruktorů if-elseif-else, aktualizujte kód následujícím způsobem:
string name = "steve"; if (name == "bob") Console.WriteLine("Found Bob"); else if (name == "steve") Console.WriteLine("Found Steve"); else Console.WriteLine("Found Chuck");Uložte soubor kódu a pak pomocí editoru Visual Studio Code spusťte svůj kód.
Když kód spustíte, měl by vytvořit následující výstup:
Found SteveKód se spustí, ale tyto řádky kódu jsou zhuštěné a obtížně čitelné. Můžete chtít přeformátovat kód tak, aby obsahoval zalomení řádku za
if,else ifaelsepříkazy.Porovnejte kód, který jste právě spustili, s následujícím kódem:
string name = "steve"; if (name == "bob") Console.WriteLine("Found Bob"); else if (name == "steve") Console.WriteLine("Found Steve"); else Console.WriteLine("Found Chuck");Všimněte si, jak mnohem jednodušší je přečíst druhou ukázku kódu.
Rekapitulace
Tady je několik důležitých věcí, které byste měli mít na paměti ohledně bloků příkazového kódu a čitelnosti:
- Pokud zjistíte, že máte v blocích
if-elseif-elsekódu příkazu uvedený jenom jeden řádek kódu, můžete odebrat složené závorky bloku kódu a prázdné znaky. Microsoft doporučuje používat složené závorky konzistentně pro všechny bloky kódu v rámci příkazuif-elseif-else(buď přítomné, nebo odebrané konzistentně). - Odeberte složené závorky bloku kódu jenom tehdy, když se kód stane čitelnějším. Vždy je přijatelné zahrnout složené závorky.
- Odstraňte pouze řádek, pokud to činí kód čitelnějším. Microsoft navrhuje, aby byl váš kód čitelnější, když se každý příkaz umístí na vlastní řádek kódu.