从C#中获取元组值的最佳方法

时间:2014-01-22 08:05:45

标签: c# .net tuples

以下是我的代码

public Tuple<string, string> GetMultipleValue()
{
    frmKbCPT mFrmKbCpt = new frmKbCPT();
    mFrmKbCpt.MaximizeBox = false;
    mFrmKbCpt.Height = 600;
    mFrmKbCpt.Width = 800;

    mFrmKbCpt.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    mFrmKbCpt.ShowDialog();
    string cptrate = mFrmKbCpt.txtRate.Text;
    string mStr = mFrmKbCpt.txtCode.Text;
    mFrmKbCpt.Dispose();

    return Tuple.Create(cptrate, mStr);
}

如果我想填充两个文本框,我会按下按钮

Tuple<string, string> getvalue = new Tuple<string, string>(GetMultipleValue().Item1, GetMultipleValue().Item2);

txtCPT1.Text = getvalue.Item1;
txtCpt1Prate_opdamt.Text = getvalue.Item2;

我的问题是它显示我的表格frmKbCPT两次。有没有办法获取元组item2而不重复函数GetMultipleValue()?谢谢,更有力量!

2 个答案:

答案 0 :(得分:5)

调用一次:

Tuple<string, string> getvalue = GetMultipleValue();

由于你要两次打电话,它会完成两次工作。

所以请打电话一次。

答案 1 :(得分:5)

您只需要调用该函数一次,将该返回值保存在变量中,然后使用该变量填充文本框。这样,该函数只被调用一次,因此只执行一次。

Tuple<string, string> temp = GetMultipleValue();

txtCPT1.Text = temp.Item1;
txtCpt1Prate_opdamt.Text = temp.Item2;