На каждой ветви разбора можно создать временный объект нужного типа и скопировать в него переданный аргумент. В данном примере рассматривается только одна ветвь, в которой создается целочисленный одномерный массив temp. Заметьте, при присваивании значения переменной temp выполняется явное преобразование из класса Object в класс Int[]. При наличии переменной temp, выполнение нужных действий над массивом не представляет никаких трудностей. Приведу два примера вызова этой процедуры: //работа с процедурой PrintObject //Корректный и некорректный вызовы Arrs.PrintObj(col1); Arrs.PrintObj(col3); Вот какой вывод порождается этим фрагментом кода:
Рис. 12.4. Результаты работы процедуры PrintObj Во всех рассмотренных примерах этой главы нам встречались массивы, элементы которых имели только простые значимые типы. В реальных программах массивы объектов и других ссылочных типов встречаются не менее часто. Каков бы ни был тип элементов, большой разницы при работе с массивами нет. Но один важный нюанс все же есть, и его стоит отметить. Он связан с инициализацией элементов по умолчанию. Уже говорилось о том, что компилятор не следит за инициализацией элементов массива и доверяет инициализации, выполненной конструктором массива по умолчанию. Но для массивов ссылочного типа инициализация по умолчанию присваивает ссылкам значение |