我有以下方法:一種方法執行兩個功能
public string Phase(string phase)
{
return "Phase 1";
}
的事情是我它需要輸出2串在2個不同的標籤:
「第1階段」
「相位2「
有沒有辦法讓我這樣做?
我有以下方法:一種方法執行兩個功能
public string Phase(string phase)
{
return "Phase 1";
}
的事情是我它需要輸出2串在2個不同的標籤:
「第1階段」
「相位2「
有沒有辦法讓我這樣做?
您有幾個選項可以返回多個值。
例如,您可能會返回IEnumerable<string>
(或其他某個集合)。您也可以返回Tuple<string,string>
。
public IEnumerable<string> Phase()
{
yield return "Phase 1";
yield return "Phase 2";
}
或者
public Tuple<string,string> Phase()
{
return Tuple.Create("Phase 1", "Phase 2");
}
話雖這麼說,這可能是簡單的使用兩種不同的方法(或屬性)返回,而不是試圖迫使它進入一個單一的方法調用每個字符串。
另一種方法是在允許的方法來選擇哪個標籤返回的參數傳遞:
public string Phase(int phase)
{
switch(phase)
{
default:
return "Phase 1";
case 2:
return "Phase 2";
}
// Or just
// return "Phase " + phase.ToString();
}
編輯:
考慮您的意見,我會建議一個屬性,剛剛返回一個數組:
public string[] Phases
{
get { return new[] { "Phase 1", "Phase 2" }; }
}
然後你可以使用這個:
var phases = this.month1.Phases;
this.lblPhase.Text = phases[0];
this.lblPhase2.Text = phases[1];
很不錯的,工作還是第一次。非常感謝里德!我記得在未來也會使用數組。善於有時看到其他人如何對付這些情況。謝謝。 – Simagen
如果方法是相同的範圍內(同一形式的一部分)在您的標籤,然後在方法中你可以設置標籤的值:
public void Phase(string phase)
{
label1.Text = "Phase 1";
label2.Text = "Phase 2";
}
如果是不一樣的範圍,因爲你的標籤內,而你正在返回爲標籤的值設置爲,您可以使用一個元組:當您收到值回從返回設置標籤
public Tuple<String, String> Phase(string phase)
{
return new Tuple<string, string>("Phase 1", "Phase 2");
}
然後像這樣:
編輯,以反映OP的重定向
var answer = month1.Phase("Phase");
label1.Text = answer.Item1;
label2.Text = answer.Item2;
我已經把 public tuple
@cameron這很難說,但應該是這樣。假設你創建一個month1類的實例爲Month1 month1 = new Month1();'你得到的語法錯誤是什麼? – NominSim
@NorimSim,是的,我有我的班級實例。您如何建議我現在將解決方案實施到表單中?這裏是我的代碼裏面的形式: var answer = this.month1.Phase(「Phase」); 給我錯誤:以下方法或屬性之間的調用不明確:Month1.Phase(string)和Month1.Phase(string) this.lblPhase.Text = String.Format(「{0}」,this.month1 。相(」」)); 給我同樣的錯誤 – Simagen
是什麼語言? – Seki
你能對你想要做的事情做更具體的描述嗎?你是否試圖用該方法返回兩個字符串值?另外你使用什麼語言? – NominSim
它不是'返回'階段「+階段;'? –