You still need to check for null.
Consider this:
private void Caller()
{
Func<int> func = null;
Callee(func);
}
private void Callee(Func<int> func)
{
func(0); // Oops
}
However, the func
parameter in the Callee()
function is already a local copy.