Vb.net 有人试过将运算符作为函数的值传递吗?

Vb.net 有人试过将运算符作为函数的值传递吗?,vb.net,Vb.net,这个想法很简单 例如,是一个计算函数 Function Calculate (Byval v1 as integer, Byval v2 as integer, byval op as ????????) as double return v1 op v2 End Function 有人试过这个吗 我不想对每个操作(乘法、除法等)都使用函数 我想传递一个与传递值相同的运算符。 为什么在VB中没有人有这种需要?! 使用枚举可以工作,但仍然。。。不是这样的…您不能传递运算符,但可以传递实现该运算

这个想法很简单

例如,是一个计算函数

Function Calculate (Byval v1 as integer, Byval v2 as integer, byval op as ????????) as double
return v1 op v2

End Function
有人试过这个吗

我不想对每个操作(乘法、除法等)都使用函数

我想传递一个与传递值相同的运算符。 为什么在VB中没有人有这种需要?!
使用枚举可以工作,但仍然。。。不是这样的…

您不能传递运算符,但可以传递实现该运算符的函数。下面是一个简短但完整的程序来演示:

Public Shared Function Add(a As Integer, b As Integer) As Integer
    Return a + b
End Function

Public Shared Function Divide(a As Integer, b As Integer) As Integer
    Return a \ b ''# Backwards \ is VB integer division
End Function

Public Shared Function Calculate(a As Integer, b As Integer, op As Func(Of Integer, Integer, Integer))
    Return op(a, b)
End Function

Public Shared Sub Main()
    Console.Write("Divide:  ")
    Console.WriteLine(Calculate(4,2, AddressOf Divide))
    Console.Write("Add:  ")
    Console.WriteLine(Calculate(4,2, AddressOf Add))
    Console.Write("Multiply:  ")
    Console.WriteLine(Calculate(4,2, Function(x,y) x * y))
    Console.Write("Subtract:  ")
    Console.WriteLine(Calculate(4,2, Function(x,y)
                                          Return x - y
                                     End Function))
    Console.ReadKey(True)
End Sub

请注意,我直接在回复窗口中键入了这一内容,因此其中可能有错误。还要注意,最后一个示例仅在VisualStudio2010中有效。但答案的要点是准确的。

我没有这样想!让我把问题说得更清楚些。