使用 C# 9.0 新語法提高 if 語句美感

C# 語言一向秉承簡潔優美的宗旨,每次升級都會帶來一些語法糖,讓咱們能夠使代碼變得更簡潔。本文分享兩個使用 C# 9.0 提高 if 語句美感的技巧示例。php

使用屬性模式代替 IsNullOrEmpty

在任何你使用 IsNullOrEmpty 的時候,能夠考慮這樣替換:編程

string? hello = "hello world";
hello = null;

// 舊的方式
if (!string.IsNullOrEmpty(hello))
{
    Console.WriteLine($"{hello} has {hello.Length} letters.");
}

// 新的方式
if (hello is { Length: >0 })
{
    Console.WriteLine($"{hello} has {hello.Length} letters.");
}

屬性模式至關靈活,你還能夠把它用在數組上,對數組進行各類判斷。好比判斷可空字符串數組中的字符串元素是否爲空或空白:數組

string?[]? greetings = new string[2];
greetings[0] = "Hello world";
greetings = null;

// 舊的方式
if (greetings != null && !string.IsNullOrEmpty(greetings[0]))
{
    Console.WriteLine($"{greetings[0]} has {greetings[0].Length} letters.");
}

// 新的方式
if (greetings?[0] is {Length: > 0} hi)
{
    Console.WriteLine($"{hi} has {hi.Length} letters.");
}

剛開始你可能會以爲閱讀體驗不太好,但用多了看多了,這種簡潔的方法更有利於閱讀。架構

使用邏輯模式簡化多重判斷

對於同一個值,把它與其它多個值進行比較判斷,能夠用 or 、and 邏輯模式簡化,示例:spa

ConsoleKeyInfo userInput = Console.ReadKey();

// 舊的方式
if (userInput.KeyChar == 'Y' || userInput.KeyChar == 'y')
{
    Console.WriteLine("Do something.");
}

// 新的方式
if (userInput.KeyChar is 'Y' or 'y')
{
    Console.WriteLine("Do something.");
}

以前不少人不解 C# 9.0 爲何要引入 or 、and 邏輯關鍵字,經過這個示例就一目瞭然了。code

後面還會繼續分享一些 C# 9.0 的新姿式,也期待你的分享。圖片

-字符串

精緻碼農
string

帶你洞悉編程與架構it

↑長按圖片識別二維碼關注,不要錯過網海相遇的緣分

相關文章
相關標籤/搜索