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