Не могу создать delegate к функциям типа long MyFunction(string,integer) - C#
Формулировка задачи:
ребята , может кто-то из вас может мне помочь . мне срочно надо сдать работу , а я толком не поняла тему и не знаю как это сделать.
есть задание:создать delegate к функциям , получающим string и integer как аргументы и возвращающим long.создать класс по имени someclass который создает delegate и демонстрирует функцию calc(функцию calc создать отдельно). и вызвать calc при помощи delegate.
кто-то в этом что-то понимает и может мне помочь? пожалуйста
Решение задачи: «Не могу создать delegate к функциям типа long MyFunction(string,integer)»
textual
Листинг программы
//декларация сигнатуры делегата YourDelegate
public delegate long YourDelegate(string sParam,int intParam);
public class SomeClass
{
//переменные принято объявлять закрытыми
private YourDelegate d;
//и создавать для них свойства,
//через которые можно только считывать значения из внешнего кода
public YourDelegate D
{
get {return d;}
}
//функция, которую нужно вызвать через делегат
//можешь попробовать изменить тут порядок или тип параметров
//а так же возвращаемого результата и увидишь что скажет компилятор после этого ;)
//правда не здесь, а в строке инициализации переменной-делегата :)
public long Calc(string sParam,int intParam)
{
//какой то код этого метода
//эту строку добавил, что бы не было ошибки компиляции, а так, конечно же, она может быть другой
return 0;
}
//конструктор класса
public SomeClass()
{
//инициализируем переменную-делегат методом Calc
d=new YourDelegate(Calc);
//ну и вызываем этот метод через только что созданную переменную-делегат
d("some text",12345);
}
}