Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用变量作为vb.net的符号_.net_Vb.net - Fatal编程技术网

使用变量作为vb.net的符号

使用变量作为vb.net的符号,.net,vb.net,.net,Vb.net,我正在写一个非常简单的数学游戏。我希望能够做到的是: Dim symbol as String Private Sub Math() symbol = "+" 1 symbol 1 = 2 symbol = "-" 1 symbol 1 = 0 end sub 我知道这不起作用,但这正是我想要的想法,提前谢谢。使用if-else或switch case,在条件中使用实际符号,如 if symbol == "+": return a+b; if symbol

我正在写一个非常简单的数学游戏。我希望能够做到的是:

Dim symbol as String

Private Sub Math()
    symbol = "+"
    1 symbol 1 = 2

    symbol = "-"
    1 symbol 1 = 0
end sub

我知道这不起作用,但这正是我想要的想法,提前谢谢。

使用if-else或switch case,在条件中使用实际符号,如

if symbol == "+":
return a+b;

if symbol == "-":
return a-b;

正如Marc Gravell已经提到的,可以使用lambda表达式。以下是它在VB中的工作方式:

Private Sub Calculate(f As Func(Of Double, Double, Double))
    Dim a As Double = 1.5, b As Double = 3.14
    Console.WriteLine(f(a,b));
End Sub
然后你会这样调用Calculate:

Calculate(Function(x,y) x+y)
Calculate(Function(x,y) x-y)
Calculate(Function(x,y) x*y)

等待1-1=1? 无论如何,我认为你应该澄清你想用这个做什么;可能一个
Func
就足够了;i、 e.
Func op=(x,y)=>x+y;var总和=op(2,3);//5
(显然这是C#,但可以翻译成VB)可能是重复的,谢谢。我是这样理解的。但我必须用尽可能少的代码来完成。有没有一种较短的方法可以做到这一点?没有通用的方法可以将数学符号字符串映射到它所描述的内容。为了使它更适合您的情况,您可以使用三元运算符,如Dim result as Integer=If(symbol=“+”,a+b,a-b)