class Test { static void Fill(object[] array, int index, int count, object value) { for (int i = index; i < index + count; i++) array[i] = value; } static void Main() { string[] strings = new string[100]; Fill(strings, 0, 100, "Undefined"); Fill(strings, 0, 10, null); Fill(strings, 90, 10, 0); } }The assignment to array[i] in the Fill method implicitly includes a run-time check, which ensures that the object referenced by value is either null or an instance of a type that is compatible with the actual element type of array. In Main, the first two invocations of Fill succeed, but the third invocation causes a System.ArrayTypeMismatchException to be thrown upon executing the first assignment to array[i]. The exception occurs because a boxed int cannot be stored in a string array. end example] Paragraph 31 Array covariance specifically does not extend to arrays of value-types. 2 For example, no conversion exists that permits an int[] to be treated as an object[].
| |
Jagger Software Ltd | |
Company # 4070126 | |
VAT # 762 5213 42 |