Step by step explanation:
params Delegate?[] delegates
- It is an array of nullable Delegate
params Delegate?[]? delegates
- The entire array can be nullable
Since each parameter is of the type Delegate?
and you return an index of the Delegate?[]?
array, then it makes sense that the return type is Delegate?
otherwise the compiler would return an error as if you were returing and int
from a method that returns a string.
You could change for instance your code to return a Delegate
type like this:
public static Delegate Combine(params Delegate?[]? delegates)
{
Delegate defaulDelegate = // someDelegate here
if (delegates == null || delegates.Length == 0)
return defaulDelegate;
Delegate d = delegates[0] ?? defaulDelegate;
for (int i = 1; i < delegates.Length; i++)
d = Combine(d, delegates[i]);
return d;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…