This is usually for performance.
In your example, it is likely the case when MyObject is allocated with 1, 2 or 3 parameters, and therefore the developer is optimized for this. Firstly, the basic implementation can be optimized, and also parameters can be transferred on the call site without additional memory allocation. Using params , the compiler will need to insert the code to create the array, and then assign parameters to this array before calling it. If this is the norm for a call with 1, 2 or 3 parameters, you can avoid this distribution.
source share