我正在尝试检查object
变量是否存在(int, int)
,如果是,我将使用强制转换的变量,因此我尝试了以下代码:
//this one gives the error
public void MyMethodWithIs(object val)
{
if(val is (int id, int name) pair)
{
ConsoleWriteLine($"{pair.id}, {pair.name}");
}
}
//This one works
public void MyMethodWithAs(object val)
{
var pair = val as (int id, int name)?;
if(pair!=null)
{
ConsoleWriteLine($"{pair.id}, {pair.name}");
}
}
该MyMethodWithIs
方法在编辑器中给出以下错误:
没有找到适合类型的解构实例或扩展方法
我的问题
为什么一个工作正常,但另一个完全出错?我认为MyMethodWithIs
更具可读性并且更适合用于我的案例,但由于出现错误,我无法使用它。