它並不能替代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的返回值 ,現在理解 了有一個明確返回值的並且 只有一句話的,就叫表達式
