[英]What is the operator precedence for the new C# 8.0 switch expressions?
我剛剛將我當前的項目升級到新發布的 .NET Standard 2.1 和 C# 8.0,並決定將一些大型switch
語句轉換為新的、更緊湊的表達式語法。
由於返回值在某些計算中被進一步使用,我想知道當輸入變量靠近運算符時新的switch
表達式的行為。
以以下示例進行字符串連接:
string input = Console.ReadLine();
string output = "Letter: " + input switch
{
"1" => "a",
"2" => "b",
_ => "else"
};
Console.WriteLine(output);
我猜這個switch
與input
變量的綁定非常緊密,因此首先被評估。 事實上,當我輸入1
時,它會打印Letter: a
。
但我現在的問題是:這種行為是否適用於任何運營商?
從我的實驗中,我無法確定上述假設不成立的情況,但這顯然並不意味着我沒有錯過任何情況。 文檔似乎也沒有在switch
表達式的上下文中提及運算符優先級。 還是我在這里有一些更深的誤解?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.