Пытался создать анонимный метод с рекурсией, но в месте рекурсии выдаёт ошибку "Use of unassigned local variable 'myDelegate'", можно ли с делегатом сообщить анонимный метод с рекурсией, если да то как?
delegate int MyDelegate(int count);
static void Main()
{
MyDelegate myDelegate = (count) =>
{
return (count == 0) ? 1 : count * myDelegate(count - 1);
};
}
всё очень просто, в теле анонимного метода в myDelegate не было присвоено ещё никакого значения (нету ни сообщённого метода). Для реализации рекурсии с помощью анонимного метода нужно изначально экземпляру делегата что-то присвоить, а потом присвоить анонимный метод с рекурсией. Например, вот так:
delegate int MyDelegate(int count);
static void Main()
{
MyDelegate myDelegate = null;
myDelegate = (count) =>
{
return (count == 0) ? 1 : count * myDelegate(count - 1);
};
}
в таком случаи ошибки не будет