我是vb.net的新手需要帮助来解决这个问题:
以下来自数据库
Param1: 100
Param2: 184
Comparion Operator: >
在vb.net中 - 我需要生成如下代码:
If 100>184 Then
'Do something
Else
'Do something
End
由于价值来自数据库,我真的很难在vb.net中生成上述代码。
我没有尝试任何东西,我很难为此编写代码。
答案 0 :(得分:0)
你必须依赖一系列条件或开关......案例。你可以获得一些灵感here。
因此,您提出的具体案例的解决方案应该是:
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
答案 1 :(得分: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;
...
}
}
}
答案 2 :(得分: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