Например, у меня естьВ C# 7 можно ли деконструкции кортежи в качестве аргументов метода
void test(Action<ValueTuple<string, int>> fn)
{
fn(("hello", 10));
}
test(t => {
var (s, i) = t;
Console.WriteLine(s);
Console.WriteLine(i);
});
Я хотел бы написать что-то вроде этого
void test(Action<ValueTuple<string, int>> fn)
{
fn(("hello", 10));
}
test((s,i) => {
Console.WriteLine(s);
Console.WriteLine(i);
});
Возможно ли это с какой-то правильной записи?
С некоторыми методами расширения ('публичный статический объект [] ToArray (это ValueTuple т) {возвращение новый объект [] {t.Item1, t.Item2};} ') вы можете использовать' fn.DynamicInvoke ((«hello», 10) .ToArray()); '- конечно, в этот момент это может иметь больше смысла чтобы просто расширить 'Invoke'. –
NetMage
Очень хороший ответ. Я пытался найти этот синтаксис в документах и не преуспел. Не могли бы вы предоставить ссылку на документы, где это объясняется? –
@AndriiLitvinov, что вы имеете в виду? –