#c_sharp #функции
Здравствуйте как "присвоить" функцию в переменную: Есть мат. функции: int sum(a,b); int sub(a,b); int div(a,b) Есть код: void main(){ operation = sum; } var operation; int calc(a,b) { ... operation(a,b); ... } P.S. Я знаю, как передать функцию в виде аргумента, но тут другая ситуация и нужно именно функцию "присвоить" переменной.
Ответы
Ответ 1
Чтобы присвоить функцию переменной, нужно чтобы переменная имела тип делегата, который описывает в точности такую же сигнатуру функции. Вот пример с двумя вариантами: class Program { //Можно явно создать делегат, описывающий нужную сигнатуру delegate int MathOperation(int a, int b); //И использовать его как тип static MathOperation Operation1; //Либо не создавать явно делегат, а использовать Funcstatic Func Operation2; static void Main(string[] args) { Operation1 = Sub; var sub = Operation1(10, 5); Operation2 = Sum; var sum = Operation2(10, 5); } static int Sub(int a, int b) { return a - b; } static int Sum(int a, int b) { return a + b; } }
Комментариев нет:
Отправить комментарий