I've looked at a ton of references and have seen that C# supports nested functions through lambda, but I'm completely new to C# (and .NET for that matter). I want to write a flood-fill implementation, with the parameters of a parent function accessible to the nested child.
Here's what it should look like, ideally:
private void StartFloodFill(color,otherstuff,pixel)
{
function Recursion(pixel,color)
{
do(otherstuff);
//etc...
Recursion(pixel,color);
}
}
The Recursion(pixel,color);
call is where my confusion lies. I can't access a reference to the function from inside the function.
I know there should be a workaround for this, but I don't know what that is. How can I implement a recursive function like that demonstrated above in C#?
As suggested, you can use a recursive delegate. Normally, you'd declare a delegate like this:
Where
Func<int, int, int>
is the type of a delegate that takes 2 ints, and returns another int.But since you want to make it call itself, you have to declare the variable before assigning the delegate.