0

我是 vb.net 的新手,需要帮助来解决这个问题:

以下来自数据库

Param1: 100
Param2: 184
Comparion Operator: >

在 vb.net - 我需要生成这样的代码:

If 100>184 Then
'Do something
Else
'Do something
End

我真的很努力如何在 vb.net 中生成上述代码,因为值来自数据库。

我没有尝试过任何东西,我正在努力为此编写代码。

4

3 回答 3

0

您必须依赖一组条件或一个 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
于 2013-06-28T09:09:37.280 回答
0

我将实现一个类,该类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;
           ...
        }
    }
}
于 2013-06-28T09:10:36.400 回答
0

尝试这样的事情:

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 
于 2013-06-28T09:11:10.977 回答