2014-01-22 28 views
1

下面是我的代碼最佳方式

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()函數?感謝和更多的權力!

回答

5

稱它爲一次:

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

既然你調用它兩次,它會做它的工作兩次。

所以稱它爲一次。

+2

感謝@ wudzik爲了捕獲我忘記了變量名,但我決定在變量名中編輯OP在他的問題中使用的名稱。 –

2

你只需要一次調用函數,保存在一個變量,它的返回值,並使用該變量來填補你文本框。這樣該函數只被調用一次,因此只執行一次。

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

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