我是学生。有人可以使用vb.net 2010帮助我完成我的项目,可以对已排序的变量的原始值进行处理。 这是我的代码:
Dim Done As Boolean = False
Dim Over As Boolean = False
Dim num1 As Single = Single.Parse(Main.Bbt.Text)
Dim num2 As Single = Single.Parse(Main.Cbt.Text)
Dim num3 As Single = Single.Parse(Main.Dbt.Text)
Do While Not Done
Done = True
If num1 > num2 Then Swap(num1, num2) : Done = False
If num1 > num3 Then Swap(num1, num3) : Done = False
If num2 > num3 Then Swap(num2, num3) : Done = False
Loop
v2.Text = (Val(v1.Text)) + (num1.ToString)
v2.Width = (15 * Val(v1.Text)) + (15 * num1.ToString) + 4
t2.Width = (15 * Val(v1.Text)) + (15 * num1.ToString)
t2.Visible = True
If Single.Parse(num1) = (Main.Bbt.Text) Then
t2.Text = "B"
ElseIf Single.Parse(num1) = (Main.Cbt.Text) Then
t2.Text = "C"
Else
t2.Text = "D"
End If
例如如何找到原始值num1,即Main.Bbt.Text,如果它们具有相同的值,则使用此代码获得具有相同字母的输出。
If num1 = Main.Bbt.Text Then
t2.Text = "B"
ElseIf num1 = Main.Cbt.Text Then
t2.Text = "C"
Else
t2.Text = "D"
End If
If num2 = Main.Bbt.Text Then
t3.Text = "B"
ElseIf num2 = Main.Cbt.Text Then
t3.Text = "C"
Else
t3.Text = "D"
End If
If num3 = Main.Bbt.Text Then
t4.Text = "B"
ElseIf num3 = Main.Cbt.Text Then
t4.Text = "C"
Else
t4.Text = "D"
End If
答案 0 :(得分:0)
您可以尝试使用引用类型,特别是可空类型,因为您使用的是Single,这是一种值类型。
如果你使用这样的交换函数:
Sub Swap(ByRef A As SingleValue, ByRef B As SingleValue)
Dim C = A
A = B
B = C
End Sub
和一个存储如下值的类:
Class SingleValue
Public Shared Widening Operator CType(ByVal Value As Single) As SingleValue
Return New SingleValue(Value)
End Operator
Public Shared Widening Operator CType(ByVal Value As SingleValue) As Single
Return Value.Value
End Operator
Public Shared Operator >(ByVal A As SingleValue, ByVal B As SingleValue) As Boolean
Return A.Value > B.Value
End Operator
Public Shared Operator <(ByVal A As SingleValue, ByVal B As SingleValue) As Boolean
Return A.Value < B.Value
End Operator
Public Sub New(ByVal Value As Single)
Me.Value = Value
End Sub
Public Value As Single
End Class
并且这样做:
Dim num1 As SingleValue = Single.Parse(Main.Bbt.Text)
Dim num2 As SingleValue = Single.Parse(Main.Cbt.Text)
Dim num3 As SingleValue = Single.Parse(Main.Dbt.Text)
Dim num1Original = num1
Dim num2Original = num2
Dim num3Original = num3
并且像这样:
If num1 = num1Original Then
t2.Text = "B"
ElseIf num1 = num2Original Then
t2.Text = "C"
Else
t2.Text = "D"
End If
If num2 = num1Original Then
t3.Text = "B"
ElseIf num2 = num2Original Then
t3.Text = "C"
Else
t3.Text = "D"
End If
If num3 = num1Original Then
t4.Text = "B"
ElseIf num3 = num2Original Then
t4.Text = "C"
Else
t4.Text = "D"
End If
我相信你会得到你想要的东西(根据我对你的解释的理解)。
复制值类型时,通常按值而不是按引用复制它们。可以通过定义自己的类将值类型包装到引用类型中。比较值类型时,仅比较值,而不是它们是否是相同值的相同副本。比较参考类型时,比较可以是值,也可以是参考,具体取决于定义的运算符。在这种情况下,使用equality(=)运算符时,它们将通过引用进行比较。您还可以使用Is运算符强制按引用进行比较(但这仍然只适用于引用类型)。