今日は他に何もすることがないので、単純な単位変換を作成することにしました。これまでのところ、うまく機能していますが、多くの「if」ステートメントを使用しているため、時間がかかりすぎています。Visual Studioで作成された単位変換器の例をネットで検索しましたが、見つけたのは、オンライン変換器を使用して計算を行うVSBasicで作成された通貨変換器だけでした。それで、単位変換器を作成するより速い方法はありますか?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItem == listBox2.SelectedItem)
{
txtAns.Text = txtFirstUnit.Text;
}
if (listBox1.SelectedItem == "Feet" && listBox2.SelectedItem == "Inches")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 12).ToString();
}
if (listBox1.SelectedItem == "Inches" && listBox2.SelectedItem == "Feet")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 12).ToString();
}
if (listBox1.SelectedItem == "Yard" && listBox2.SelectedItem == "Feet")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 3).ToString();
}
if (listBox1.SelectedItem == "Feet" && listBox2.SelectedItem == "Yard")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 3).ToString();
}
if (listBox1.SelectedItem == "Yard" && listBox2.SelectedItem == "Inches")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 36).ToString();
}
if (listBox1.SelectedItem == "Inches" && listBox2.SelectedItem == "Yard")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 36).ToString();
}
if (listBox1.SelectedItem == "Mile" && listBox2.SelectedItem == "Inches")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 63360).ToString();
}
if (listBox1.SelectedItem == "Inches" && listBox2.SelectedItem == "Mile")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 63360).ToString();
}
if (listBox1.SelectedItem == "Mile" && listBox2.SelectedItem == "Feet")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 5280).ToString();
}
if (listBox1.SelectedItem == "Feet" && listBox2.SelectedItem == "Mile")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 5280).ToString();
}
if (listBox1.SelectedItem == "Mile" && listBox2.SelectedItem == "Yard")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 1760).ToString();
}
if (listBox1.SelectedItem == "Yard" && listBox2.SelectedItem == "Mile")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 1760).ToString();
}
if (listBox1.SelectedItem == "Inches" && listBox2.SelectedItem == "Meters")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 39.370).ToString();
}
if (listBox1.SelectedItem == "Meters" && listBox2.SelectedItem == "Inches")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 39.370).ToString();
}
if (listBox1.SelectedItem == "Meters" && listBox2.SelectedItem == "Feet")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 3.2808).ToString();
}
if (listBox1.SelectedItem == "Feet" && listBox2.SelectedItem == "Meters")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 3.2808).ToString();
}
if (listBox1.SelectedItem == "Meters" && listBox2.SelectedItem == "Yard")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 1.0936).ToString();
}
if (listBox1.SelectedItem == "Yard" && listBox2.SelectedItem == "Meters")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 1.0936).ToString();
}
if (listBox1.SelectedItem == "Meters" && listBox2.SelectedItem == "Miles")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) * 0.00062137).ToString();
}
if (listBox1.SelectedItem == "Miles" && listBox2.SelectedItem == "Meters")
{
txtAns.Text = (double.Parse(txtFirstUnit.Text) / 0.00062137).ToString();
}
}
}