1

这是一个非常幼稚的问题,但我之前没有使用过元组,所以提出了这个问题。我在访问作为另一个函数中的元组的函数返回值时遇到了一些问题。

这是我的代码:

  public Tuple<string, string, string> CreateTransaction()
        {
            var tCompResp = new Tuple<string, string, string>(T, TCode, Message);
            return tCompResp;
}

现在我不确定如何在其他页面中访问上述函数的返回值

  var tResp = new Tuple<string, string, string>((objManager.CreateTransaction()).Item1, (objManager.CreateTransaction()).Item2, (objManager.CreateTransaction()).Item3);

在上面的行中,我可以访问返回元组,但问题是我正在调用相同的函数( CreateTransaction() ) 3 次

所以我的问题是如何在单次调用中获取函数的元组返回值?

 String tRespon = objManager.CreateTransaction()   ///Suppose if return type is string.

我将在像这样的另一个函数中使用这个值

Update(tRespon.Item1, tRespon.Item2, tRespon.Item3);
4

3 回答 3

2

你不需要创建一个新的元组:

   var tResp = objManager.CreateTransaction();
   Update(tResp.Item1, tResp.Item2, tResp.Item3);

CreateTransaction()已经返回一个Tuple您可以立即使用的

于 2013-09-04T11:22:51.540 回答
2

更短:

var tRespon = objManager.CreateTransaction();
Update(tRespon.Item1,tRespon.Item2,tRespon.Item3);
于 2013-09-04T11:23:43.027 回答
1

尝试这个:

Tuple<string,string,string> tRespon = objManager.CreateTransaction();

Update(tRespon.Item1,tRespon.Item2,tRespon.Item3);

CreateTransactionTuple<string,string,string>不返回string

你总是可以var使用Tuple<string,string,string>

var tRespon = objManager.CreateTransaction();

请注意,这var只是另一种编写方式,而不是类型。

但更好的方法应该是使用新类来返回这些数据:

public class ConnectionInfo
{
   public string T;
   public string Code;
   public string Message;
}

public ConnectionInfo CreateTransaction()
{
     var tCompResp = new ConnectionInfo{T=T, Code=TCode, Message=Message};
     return tCompResp;
}

然后

var tRespon = objManager.CreateTransaction();
Update(tResp.T, tResp.Code, tResp.Message);
于 2013-09-04T11:22:28.860 回答