Я не нашел в c# доках такую функцию.
Ну чисто теоретически ее можно написать, но проблема в том что питон как я посмотрел можно слева указать 2 переменные, многие языки такую конструкцию не поддерживают (ну или я чего-то не знаю).
В итоге все равно сведётся к тому что будет два вызова
Там раскладывание кортежа.
Кортеж - это неизменяемый массив. Он пишется обычными скобочками или без. Т.е. (1, 2)
- это кортеж.
1, 2
- тоже кортеж, но в некоторых случаях так объявлять кортеж нельзя из-за неоднозначности.
Что-то похожее есть во многих языках, например в жс и котлине. В жс так:
let [a, b] = [1, 2]
В питоне то же самое можно запилить вот так:
a, b = 1, 2
Это дает нам интересную конструкцию:
a, b = b, a
Пока ниче необычного, но можно еще вот так:
return 1, 2
С "обратной стороны" функции это можно также успешно разложить на переменные.
a, b = fun()
То есть, это просто синтаксическое скрытие вот такого:
r = fun()
a = r[0]
b = r[1]
Возможно с какими то оптимизациями. К тому же кортеж, так как неизменяем, чуть быстрее списка. И конечно же, необязательно 2 переменные. Можно больше)
В котлине всё немного по-другому, я еще не так хорошо знаю его потроха.