簡體   English   中英

在C#中訪問函數的返回類型為Tuple

[英]Access function return type as Tuple in C#

這是一個非常幼稚的問題,但是我之前沒有使用過元組,所以請問一下。 訪問函數返回值(另一個函數中的元組)時遇到一些問題。

這是我的代碼:

  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);

您不需要創建新的元組:

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

CreateTransaction()已經返回一個Tuple ,您可以立即使用

甚至更短:

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

嘗試這個:

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

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

CreateTransaction返回Tuple<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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM