[英]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.