I was browsing through the documentation and noticed that Console.WriteLine() method had several overloads. Particularly, my curiosity and partial confusion pertains to these:

public static void WriteLine(string format, params object[] arg); public static void WriteLine(string format, object arg0); public static void WriteLine(string format, object arg0, object arg1); public static void WriteLine(string format, object arg0, object arg1, object arg2); public static void WriteLine(string format, object arg0, object arg1, object arg2, object arg3);

It seems redundant. What is the need of the other four overloads on top of the first one? The first method is able to do everything that the other methods can do. Is there a performance concern that they were trying to tackle by providing additional overloads, which handle up to four arguments (last one)? Is the overhead of going through an array of up to four arguments large enough to provide the need for these overloads?