C#8 里的 switch表達式 注意點


它並不能替代switch語句的功能,主要表現在 這個是個表達式,它必須有一個確切的返回值 ,所以

它用在模式匹配加轉換的場合是合適 ,而如果沒有返回值 ,編譯都通不過

 

var x=3


x switch
{
1 => Console.WriteLine('a'),
2 => Console.WriteLine("302"),
_ => Console.WriteLine(225),
};

 

直接想這么 void的 分支處理程序 就編譯不過,必須這樣

 

var x=3


var x2=x switch
{
1 => 'a',
2 => 'b',
_ => 'c',
};

 

這樣才可以

還有個細節,是表達式每項后面是逗號,不是分號,switch表達的外層大括號,后面要加個分號,最后一個匹配項,后面可以加逗號可以不加,但不能加分號

 

lambda表達式, 和語句的不同也在於 表達式,只是一句話,和switch也一樣 一個分號,但lambda不用寫分號,並且 有一個非void的返回值 ,現在理解 了有一個明確返回值的並且 只有一句話的,就叫表達式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM