Intereting Posts
Зарегистрируйте фоновое задание без запуска приложения. Как получить список запущенных streamов в C #? Встроенная форма в элементе управления или форме как пользовательский элемент управления Вложенные свойства Nhibernate QueryOver Прочитать файл из подпапки папки установки приложения быстро сравнивая содержимое двух огромных текстовых файлов RNGCryptoServiceProvider – просмотр случайных чисел Поиск по индексу списка Почему буферы с фиксированным размером (массивы) должны быть небезопасными? Как передать учетные данные в настройке конфигурации defaultProxy? определить, находится ли машина в сети или в автономном режиме, используя WMI и C # Хранить ссылку на тип значения? Другие способы обработки «инициализации цикла» в C # Загрузка файлов в библиотеку документов SharePoint (WSS 3.0) с использованием HTTP PUT «Этот файл заблокирован, потому что он появился с другого компьютера» – проблема с разрешением ajax

Можете ли вы назначить функцию переменной в C #?

Я видел, как функция может быть определена в javascript, как

var square = function(number) {return number * number}; 

и может быть вызван как

 square(2); var factorial = function fac(n) {return n<3 ? n : n*fac(n-1)}; print(factorial(3)); 

Код c #

 MyDelegate writeMessage = delegate () { Console.WriteLine("I'm called"); }; 

поэтому мне нужно знать, что я могу определить функцию таким же образом в c #. если да, то просто дайте небольшой fragment выше, как определение функции в c #, пожалуйста. Благодарю.

Вы можете создать объявление типа делегата:

 delegate int del(int number); 

а затем назначить и использовать его:

  del square = delegate(int x) { return x * x; }; int result= square (5); 

Или, как сказано, вы можете использовать «ярлык» для делегатов (он сделан делегатами) и использовать:

 Func<[inputType], [outputType]> [methodName]= [inputValue]=>[returnValue] 

например:

Func square = x=>x*x;
int result=square(5);

У вас также есть два других ярлыка:
Func без параметра: Func p=()=>8;
Func с двумя параметрами: Func p=(a,b)=>a+b;

 Func square = x => x * x; Func factorial = n => { return n < 3 ? n : n * fac(n-1); } 

Любая из этих более подробных форм тоже возможна: (я использую square в качестве примера):

  • Func square = x => { return x * x; };

  • Func square = (double x) => { return x * x; };

  • Func square = delegate(double x) { return x * x; };
    В этом случае используется более старый синтаксис анонимного делегата вместо так называемых «lambda-выражений» ( => ).

PS: int не может быть подходящим типом возврата для такого метода, как factorial . Вышеприведенные примеры должны только демонстрировать синтаксис , поэтому модифицируйте их по мере необходимости.