Я пытаюсь проверить, является ли переменная 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 более удобочитаемым и подходящим для использования в моем случае, но я не могу использовать его из-за ошибки.