Skip to main content
 首页 » 编程设计

tuples之在 C# 7 中是否可以将元组解构为方法参数

2024年09月07日30haluo1

例如我有

private void test(Action<ValueTuple<string, int>> fn) 
{ 
    fn(("hello", 10)); 
} 
 
test(t =>  
 { 
    var (s, i) = t; 
    Console.WriteLine(s); 
    Console.WriteLine(i); 
}); 

我想写这样的东西
private void test(Action<ValueTuple<string, int>> fn) 
{ 
    fn(("hello", 10)); 
} 
 
test((s,i) =>  
{ 
    Console.WriteLine(s); 
    Console.WriteLine(i); 
}); 

用一些适当的符号可以做到这一点吗?

请您参考如下方法:

您可以将其缩短为:

void test( Action<ValueTuple<string, int>> fn) 
{ 
    fn(("hello", 10)); 
} 
 
test(((string s, int i) t) => 
{ 
    Console.WriteLine(t.s); 
    Console.WriteLine(t.i); 
}); 

希望有一天我们可以将元组中的参数传递给方法调用:
void test(Action<ValueTuple<string, int>> fn) 
{ 
    fn(@("hello", 10)); // <-- made up syntax 
} 
 
test((s, i) => 
{ 
    Console.WriteLine(s); 
    Console.WriteLine(i); 
}); 

但目前不是。