我是 vb.net 的新手,需要帮助来解决这个问题:
以下来自数据库
Param1: 100
Param2: 184
Comparion Operator: >
在 vb.net - 我需要生成这样的代码:
If 100>184 Then
'Do something
Else
'Do something
End
我真的很努力如何在 vb.net 中生成上述代码,因为值来自数据库。
我没有尝试过任何东西,我正在努力为此编写代码。
我是 vb.net 的新手,需要帮助来解决这个问题:
以下来自数据库
Param1: 100
Param2: 184
Comparion Operator: >
在 vb.net - 我需要生成这样的代码:
If 100>184 Then
'Do something
Else
'Do something
End
我真的很努力如何在 vb.net 中生成上述代码,因为值来自数据库。
我没有尝试过任何东西,我正在努力为此编写代码。
您必须依赖一组条件或一个 switch...case。你可以在这里得到一些灵感。
因此,您提出的具体案例的解决方案应该是:
Private Function checkSituation(ByVal val1 As Integer, ByVal inputOperator As String, ByVal val2 As Integer) As Boolean
Select Case inputOperator
Case ">"
Return val1 > val2
Case "<"
Return val1 < val2
Case "="
Return val1 = val2
End Select
End Function
在你的情况下:
If (checkSituation(100, ">", 184)) Then
End If
我将实现一个类,该类Comparator
具有一个方法,true
如果满足条件则返回,否则返回false
。我不精通 VB.NET,但我会在 C# 中尝试以下操作:
public static class Comparator
{
public static bool Compare(int value1, int value2, string operator)
{
switch (operator)
{
case "<" : return value1 < value2;
case "<=" : return value1 <= value2;
case ">" : return value1 > value2;
...
}
}
}
尝试这样的事情:
Private Function EvalData(param1 As Integer, param2 As Integer, operator As String) As Boolean
Select Case operator
Case ">" : Return param1 > param2
Case "<" : Return param1 < param2
Case "=" : Return param1 = param2
Case Else
Throw New ApplicationException("No matches for this operator")
End Select
End Function
然后以这种方式使用它:
If EvalData(param1, param2, operator) Then
'Do something
Else
'Do something
End