本文介绍了传递 ValueTuple 而不是参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

是否可以这样做(或者我可能需要特定版本的 C#)?

Is it possible to do in this way (or maybe I need specific version of C#)?

Function<int,int,int,int> triSum = (a,b,c) => {return a+b+c;};
var tup = (1,2,3);
triSum(tup); //passing one tuple instead of multiple args

更新:我的意思是传递元组而不是单独的参数.

Update: I mean passing tuple instead of separate arguments.

public void DoWrite(string s1, string s2)
{
Console.WriteLine(s1+s2);
}
public (string,string) GetTuple()
{
//return some of them
}
//few lines later
DoWrite(GetTuple());

推荐答案

是的,你可以使用 Named ValueTuples C# 7.1 ,甚至只是一个 Local Method 如果合适

Yes you could use Named ValueTuples C# 7.1 , or even just a Local Method if it suits

Action<(int a, int b, int c)> triSum = t
   => Console.WriteLine(t.a + t.b + t.c);

triSum((1, 2, 3));

或者只是作为本地方法

void TriSum((int a, int b, int c) t)
   => Console.WriteLine(t.a + t.b + t.c);

TriSum((1, 2, 3));

这篇关于传递 ValueTuple 而不是参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-09 02:28