Originariamente inviato da Satsuki Kenbu
Quindi è semplicemente un errore di chi ha scritto quell'esempio?

Ho appena provato in C e in effetti neanche la printf() segnala errore se inserisco più elementi di quanti segnalati nella stringa di formattazione.
Be', quello anche perché la printf non sa nulla dei dati che le vengono passati oltre a ciò che legge nella stringa di formato; String.Format in linea di massima invece sa tutto di ciò che le è stato passato, dato che i parametri aggiuntivi le sono passate in un array managed.
Di String.Format() mi sai dire niente?
Il metodo che effettivamente gestisce la formattazione è String.Format; WriteLine fornisce un overload che si comporta come String.Format (di fatto credo che internamente lo richiami) per praticità; se usi WriteLine puoi quindi evitare di richiamare String.Format, il che può essere comodo per rendere meno verboso il codice.