Приведение нового кортежа к старому дает ошибку компиляции
С кодом ниже,
class Program
{
static void Main(string[] args)
{
Tuple<int, int> test = TupleTest();
}
static (int, int) TupleTest()
{
return (1, 2);
}
Я получаю следующую ошибку времени компиляции.
Ошибка CS0029 Невозможно неявно преобразовать тип '(int, int)' в 'System.Tuple
'
Означает ли это, что новая версия Tuple неявно не совместима со старой версией? Или я что-то здесь не так делаю?
2 ответа
Решение
Да, вы должны использовать метод расширения ToTuple. Итак, в вашем примере...
class Program
{
static void Main(string[] args)
{
Tuple<int, int> test = TupleTest().ToTuple();
}
static (int, int) TupleTest()
{
return (1, 2);
}
- использование
ValueTuple
вместо:
ValueTuple test = TupleTest ();
- Использовать
ToTuple
метод расширения (ToValueTuple
также доступно):
Tuple test = TupleTest (). ToTuple ();