簡體   English   中英

值元組類型模式

[英]Value tuple type pattern

我試圖在C#7中針對元組類型使用類型模式:

var lst = new List<object>();
lst.Add("foo");
lst.Add(("bar","baz"));

foreach (var item in lst) {
    switch (item) { 
        case string s:
            break;
        case (string, string) t: //Compiler error here
            break;
    }
}

但是編譯器給我以下錯誤:

無效的表達式術語“字符串”預期為常數

我該如何解決?


注意:我知道我可以使用:

case ValueTuple<string,string> t:

但我想知道是否有更好的語法。

只需使用case ValueTuple<string, string> t:

當我發布此答案時,您剛剛向您的問題添加了相同的解決方案。 好吧,您必須堅持使用該解決方案,直到他們添加對case (,):語法的編譯器支持case (,):因為這是一種極端的情況,所以我們不會等待)。

有幾種不同的模式,這些模式在C#7.0中未實現,但在模式建議中會進行跟蹤,包括您描述的遞歸和位置模式。 其中一些是以后的7.x點發行版的候選。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM