我會做到以下幾點:
0)保持文本框中輸入英尺/英寸/米等的數量/數...
1)使用下拉列表,而不是文本框。
2)不只是把文本作爲下拉項目創建類並將它們添加爲項目。下拉項目將調用其.ToString()來獲取項目的文本值。
3)所有這些項目都可以繼承基類/抽象類,以便傳遞qty值。
例如,您的下拉項可以是這樣的:
我是一個C#的人,不必因此這裏轉換的時間是我的想法在C#代碼表示。
public abstract class MeasureableItem
{
public string Name { get; private set; }
public MeasureableItem(string name)
{
Name= name;
}
public abstract decimal ConvertFrom(MeasureableItem from, decimal qty);
public override string ToString() { return Name; }
}
你會再定義一些類型:
public class Inches : MeasureableItem
{
public Inches() : base("Inches") {}
public override decimal ConvertFrom(MeasureableItem from, decimal qty)
{
if (from is typeof(Feet))
{
return qty * (decimal)12;
}
else{
throw new Exception("Unhandled conversion.");
}
}
}
public class Feet : MeasureableItem
{
public Feet() : base("Feet") {}
public override decimal ConvertFrom(MeasureableItem from, decimal qty)
{
if (from is typeof(Inches))
{
return qty/(decimal)12;
}
else{
throw new Exception("Unhandled conversion.");
}
}
}
你可以明顯增加 「否則,如果{}」,以支持更多的轉換。
要添加到下拉做到這一點:
MeasureableItem inches = new Inches();
MeasureableItem feet = new Feet();
dropDownFrom.Items.Add(inches);
dropDownFrom.Items.Add(feet);
你將不得不爲「到」下拉菜單還,我不相信這些控件讓你分享在多個項目之間創建一個專用實例控制。
什麼是消耗時間,你寫代碼或我們讀這個? –
編寫代碼。 – stackptr
代碼不會自行寫入。你可以寫'如果x和y'或者一堆物體。有什麼不同? –