W .NET Framework I stale zobaczyć przeciążone funkcje jak poniżej,C# params słowo kluczowe i funkcja przeciążenia
public void Log(string message)
...public void Log(string message, params object[] args)
...
moje pytanie jest od params słowo kluczowe pozwala na zero lub więcej parametrów, czy możemy po prostu pozbyć się pierwszego podpisu? Mając tylko drugi podpis, mógłbym go nazwać bez parametrów dobrze jak poniżej, więc nie wiem, dlaczego mieliby mieć pierwszy podpis?
Log("calling with no param");
Jeffrey Richter w jego książce [CLR przez C#] (http://oreilly.com/catalog/9780735627048) idzie o to bardziej szczegółowo; w zasadzie masz rację, jest to optymalizacja, aby uniknąć niepotrzebnych kosztów ogólnych tablic (budowa, dostęp i usuwanie śmieci). – Bevan
@Bevan: Ja też to wiem ze swojej książki :) –
Zauważ, że jeśli nazwiesz 'Format (" foo ", null)' zostanie wywołana druga wersja funkcji, z 'args == null'. –