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;
}