6
是否有可能在使用C#7,像這樣的switch語句使用元組模式匹配:C#7模式與之匹配的元組
switch (parameter)
{
case ((object, object)) tObj when tObj.Item1 == "ABC":
break;
}
我得到那個說tObj does not exist in the current context
錯誤。
我曾經嘗試這樣做,以及:
switch (parameter)
{
case (object, object) tObj when tObj.Item1 == "ABC":
break;
}
這工作得很好:
switch (parameter)
{
case MachineModel model when model.Id == "123":
break;
}
@DavidArno感謝您的編輯,但使用'var'有一個問題。如果'parameter'是'object'類型,並且switch語句也用於檢查類型,則會失敗。 [例如](https://gist.github.com/WiredUK/21d1a61c01580a2fe7b055ec83b46889) – DavidG
好點。我從這個問題推斷出'參數'是一個元組,但這可能是一個糟糕的假設。 –
@DavidArno我認爲這幾乎肯定是,這就是爲什麼我沒有調整你的編輯。只是認爲這裏值得一提。 – DavidG