KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Consider string.Format() whose parameters are a string and, among others in the overload list, an object[] or many objects. This statement succeeds: string foo = string.Format("{0} {1}", 5, 6); as does this: object[] myObjs = new object[] {8,9}; string baz = string.Format("{0} and {1}", myObjs; as does an array of strings: string[] myStrings = new string[] {"abc", "xyz"}; string baz = string.Format("{0} {1}", myStrings); It seems that the integers, when specified individually, can be boxed or coerced to type object , which in turn is coerced to a string. This statement fails at runtime . int[] myInts = new int[] {8,9}; string bar = string.Format("{0} and {1}", myInts); Index (zero based) must be greater than or equal to zero and less than the size of the argument list. Why doesn't or can't the int array be coerced or boxed to an object[] or string[] ? Out of a small bit of curiosity, why doesn't the compiler catch this?
Tags (comma-separated)
Save Edits
Cancel