When you declare and initialize an implicitly-typed array, the C# compiler tries to find a single type that best fits all of the values that you provide. Constant values can be of different types, as long as they are all implicitly convertible to a single common type.