利用C#9.0新語(yǔ)法如何提升if語(yǔ)句美感
前言
C# 語(yǔ)言一貫秉承簡(jiǎn)潔優(yōu)美的宗旨,每次升級(jí)都會(huì)帶來(lái)一些語(yǔ)法糖,讓我們可以使代碼變得更簡(jiǎn)潔。本文分享兩個(gè)使用 C# 9.0 提升 if 語(yǔ)句美感的技巧示例。
使用屬性模式代替 IsNullOrEmpty
在任何你使用 IsNullOrEmpty 的時(shí)候,可以考慮這樣替換:
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."); }
屬性模式相當(dāng)靈活,你還可以把它用在數(shù)組上,對(duì)數(shù)組進(jìn)行各種判斷。比如判斷可空字符串?dāng)?shù)組中的字符串元素是否為空或空白:
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."); }
剛開始你可能會(huì)覺得閱讀體驗(yàn)不太好,但用多了看多了,這種簡(jiǎn)潔的方法更有利于閱讀。
使用邏輯模式簡(jiǎn)化多重判斷
對(duì)于同一個(gè)值,把它與其它多個(gè)值進(jìn)行比較判斷,可以用 or 、and 邏輯模式簡(jiǎn)化,示例:
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 邏輯關(guān)鍵字,通過(guò)這個(gè)示例就一目了然了。
后面還會(huì)繼續(xù)分享一些 C# 9.0 的新姿勢(shì),也期待你的分享。
總結(jié)
到此這篇關(guān)于利用C#9.0新語(yǔ)法如何提升if語(yǔ)句美感的文章就介紹到這了,更多相關(guān)C#9.0新語(yǔ)法提升if語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用MD5算法對(duì)密碼進(jìn)行加密的示例代碼
MD5(Message Digest Algorithm 5)是一種被廣泛使用的“消息-摘要算法”,“消息-摘要算法”實(shí)際上就是一個(gè)單項(xiàng)散列函數(shù),數(shù)據(jù)塊經(jīng)過(guò)單向散列函數(shù)得到一個(gè)固定長(zhǎng)度的散列值,本文給大家介紹了C#使用MD5算法對(duì)密碼進(jìn)行加密,需要的朋友可以參考下2024-03-03C# 定時(shí)器定時(shí)更新的簡(jiǎn)單實(shí)例
這篇文章主要介紹了C#中定時(shí)器定時(shí)更新的簡(jiǎn)單實(shí)例。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12VS?Code里使用Debugger?for?Unity插件調(diào)試的方法(2023最新版)
Debugger for Unity是一個(gè)非正式支持的,官方推薦的,應(yīng)用最廣的,Visual Studio Code上的Unity調(diào)試插件,這篇文章主要介紹了VS?Code里使用Debugger?for?Unity插件進(jìn)行調(diào)試(2023最新版),需要的朋友可以參考下2023-02-02混合語(yǔ)言編程—C#使用原生的Directx和OpenGL繪圖的方法
本文要說(shuō)的是混合C#和C/C++語(yǔ)言編程,在C#的Winform和WPF下使用原生的Direct和OpenGL進(jìn)行繪圖2013-09-09C#實(shí)現(xiàn)把指定數(shù)據(jù)寫入串口
這篇文章主要介紹了C#實(shí)現(xiàn)把指定數(shù)據(jù)寫入串口,直接給出示例代碼,需要的朋友可以參考下2015-06-06Unity3D實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲(1)
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06