Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C中的元组中获取值的最佳方法#_C#_.net_Tuples - Fatal编程技术网

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

C# 从C中的元组中获取值的最佳方法#,c#,.net,tuples,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.F

下面是我的代码

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);
}
public元组GetMultipleValue()
{
FRMKBPT mFrmKbCpt=新的FRMKBPT();
mFrmKbCpt.MaximizeBox=false;
mFrmKbCpt.高度=600;
mFrmKbCpt.宽度=800;
mFrmKbCpt.FormBorderStyle=System.Windows.Forms.FormBorderStyle.None;
mFrmKbCpt.ShowDialog();
字符串cptrate=mFrmKbCpt.txtRate.Text;
字符串mStr=mFrmKbCpt.txtCode.Text;
mFrmKbCpt.Dispose();
返回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;
Tuple getvalue=新元组(GetMultipleValue().Item1,GetMultipleValue().Item2);
txtCPT1.Text=getvalue.Item1;
txtCpt1Prate_opdamt.Text=getvalue.Item2;
我的问题是它显示了我的表单frmKbCPT两次。有没有一种方法可以在不重复函数GetMultipleValue()的情况下获取元组item2?谢谢,还有更多的力量

叫它一次:

Tuple<string, string> getvalue = GetMultipleValue();
Tuple getvalue=GetMultipleValue();
既然你给它打了两次电话,它就会做两次


所以只需调用一次。

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

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

txtCPT1.Text = temp.Item1;
txtCpt1Prate_opdamt.Text = temp.Item2;
Tuple temp=GetMultipleValue();
txtCPT1.Text=temp.Item1;
txtCpt1Prate_opdamt.Text=临时项目2;

感谢@wudzik发现我忘记了变量名,但我决定在变量名中编辑他问题中使用的OP。