2016-05-13 3 views
0

Я хочу, чтобы код возвращал оператор, такой как (+) или (-) , а затем использовал его для выполнения расчета. возможно ли это в vb.net?Функция vb.net для возврата оператора

псевдокод

public function rOperator(params) as operator 

if (..) 
return + 

else 
return - 
end if 

end function 

псевдокод

Msgbox(1 rOperator 2) 
+0

Нет, это невозможно. Самый простой способ - сделать функцию, которая вычисляет по-разному в зависимости от вашего состояния (состояний). То есть 'DoMath (1, 2)' –

ответ

2

Как уже было сказано ранее, это не представляется возможным. Что вы можете сделать, это создать словарь Func(Of T) и затем вызвать те, передавая оператором:

Sub Main 
    Dim operations As New Dictionary(Of String, Func(Of Double, Double, Double))() 

    'Set up operations for addition, subtractions, multipication, and division 
    operations.Add("+", Function(l, r) l + r) 
    operations.Add("-", Function(l, r) l - r) 
    operations.Add("*", Function(l, r) l * r) 
    operations.Add("/", Function(l, r) l/r) 

    Dim result As Double = operations("+")(5, 5) 
    Dim result2 As Double = operations("*")(5, 5) 

    Console.WriteLine(result) 
    Console.WriteLine(result2) 

End Sub 
Смежные вопросы