Vb.net Visual Studio转换套件

Vb.net Visual Studio转换套件,vb.net,visual-studio,visual-studio-2008,Vb.net,Visual Studio,Visual Studio 2008,我有这个作为我的转换程序的“长度”,我如何做它的最简单的方式,而不是保持如果,elseif,否则太多,我没有太多的经验,并试图提高我的编程技能的visual studio 2008 基本上,我对这些公式感到恼火,因为我不知道它是否正确,我使用谷歌,但没有帮助,因为我不知道当程序从一种类型转换到另一种类型时如何正确使用它 Public Class Form2 Dim Metres As Integer Dim Centimetres As Integer Dim Inche

我有这个作为我的转换程序的“长度”,我如何做它的最简单的方式,而不是保持如果,elseif,否则太多,我没有太多的经验,并试图提高我的编程技能的visual studio 2008

基本上,我对这些公式感到恼火,因为我不知道它是否正确,我使用谷歌,但没有帮助,因为我不知道当程序从一种类型转换到另一种类型时如何正确使用它

Public Class Form2
    Dim Metres As Integer
    Dim Centimetres As Integer
    Dim Inches As Integer
    Dim Feet As Integer
    Dim Total As Integer

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ErrorMsg.Hide()
    End Sub

    Private Sub btnConvert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvert.Click

        Metres = 1
        Centimetres = 0.01
        Inches = 0.0254
        Feet = 0.3048

        txtTo.Text = 0

        If txtFrom.Text <> "" Then
            If IsNumeric(txtFrom.Text) And IsNumeric(txtTo.Text) Then

                If cbFrom.Text = "Metres" And cbTo.Text = "Centimetres" Then
                    Total = txtFrom.Text * Metres
                    txtTo.Text = Total
                ElseIf cbFrom.Text = "Metres" And cbTo.Text = "Inches" Then
                    Total = txtFrom.Text * 100
                    txtTo.Text = Total
                ElseIf cbFrom.Text = "Metres" And cbTo.Text = "Feet" Then

                ElseIf cbFrom.Text = "Centimetres" And cbTo.Text = "Metres" Then

                ElseIf cbFrom.Text = "Centimetres" And cbTo.Text = "Inches" Then

                ElseIf cbFrom.Text = "Centimetres" And cbTo.Text = "Feet" Then

                ElseIf cbFrom.Text = "Inches" And cbTo.Text = "Metres" Then

                ElseIf cbFrom.Text = "Inches" And cbTo.Text = "Centimetres" Then

                ElseIf cbFrom.Text = "Inches" And cbTo.Text = "Feet" Then

                ElseIf cbFrom.Text = "Feet" And cbTo.Text = "Metres" Then

                ElseIf cbFrom.Text = "Feet" And cbTo.Text = "Centimetres" Then

                ElseIf cbFrom.Text = "Feet" And cbTo.Text = "Inches" Then

                End If

            End If
        End If
    End Sub
End Class
公共类表单2
作为整数的Dim米
整数厘米
将英寸设置为整数
将脚变暗为整数
将总计设置为整数
私有子表单2_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
ErrorMsg.Hide()
端接头
私有子btnConvert_Click(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理btnConvert。单击
米=1
厘米=0.01
英寸=0.0254
英尺=0.3048
txtTo.Text=0
如果是txtFrom.Text“”,则
如果IsNumeric(txtFrom.Text)和IsNumeric(txtTo.Text),则
如果cbFrom.Text=“米”和cbTo.Text=“厘米”,则
总计=txtFrom.Text*米
txtTo.Text=总计
ElseIf cbFrom.Text=“米”和cbTo.Text=“英寸”,然后
总计=txtFrom.Text*100
txtTo.Text=总计
ElseIf cbFrom.Text=“米”和cbTo.Text=“英尺”,然后
ElseIf cbFrom.Text=“厘米”和cbTo.Text=“米”,然后
ElseIf cbFrom.Text=“厘米”和cbTo.Text=“英寸”,然后
ElseIf cbFrom.Text=“厘米”和cbTo.Text=“英尺”,然后
ElseIf cbFrom.Text=“Inches”和cbTo.Text=“meters”则
ElseIf cbFrom.Text=“Inches”和cbTo.Text=“centimes”则
ElseIf cbFrom.Text=“Inches”和cbTo.Text=“Feet”然后
ElseIf cbFrom.Text=“Feet”和cbTo.Text=“meters”然后
ElseIf cbFrom.Text=“Feet”和cbTo.Text=“centimes”则
ElseIf cbFrom.Text=“Feet”和cbTo.Text=“Inches”则
如果结束
如果结束
如果结束
端接头
末级

这就是我目前所做工作的来源。

一种基本方法是使用中间格式来分割“from”和“to”转换的处理

所以程序代码类似于这样:

Dim intermediate as Double //Intermediate format in centimeters
Dim result as Double
Dim inputValue as Double = cDbl(txtFrom.Text)

If cbFrom.Text = "Metres" Then
   intermediate = inputValue  * 100
else if cbFrom.Text = "Centimetres" Then
   intermediate = inputValue  
else if 
   ...
End If

If cbTo.Text = "Metres" Then
  result = intermediate / 100
else if cbTo.Text = "Centimetres" Then
  result = intermediate
End If 

txtTo.Text = Math.Round(result, 2) //Round optional :)
使用这种方法,您只需担心与中间格式之间的转换,并且只需处理每个输入和输出格式一次(而不是为每个输入/输出对编写自定义转换)