Podczas gdy studiowałem delegata, który jest w rzeczywistości klasą abstrakcyjną Delegate.cs, zobaczyłem następującą metodę, której nie rozumiem
- Dlaczego wartość zwracana wykorzystuje,
?mimo że jest to już typ referencyjny ( klasa ) ?[]?znaczenie w parametrze
Czy możesz wytłumaczyć?
public static Delegate? Combine(params Delegate?[]? delegates)
{
if (delegates == null || delegates.Length == 0)
return null;
Delegate? d = delegates[0];
for (int i = 1; i < delegates.Length; i++)
d = Combine(d, delegates[i]);
return d;
}