@Giel: he’s not talking about printf (which does have type-safety issues), he’s talking about .NET Strings. All .NET objects derive from Object, and Object implements a .ToString() method, which means that all types can be converted to a string. Which, as I’m sure Jeff would agree, is beautiful.