Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Передача null в качестве параметра


Автор: kvick 14.10.2012, 17:16
Есть код:
Код

class Program
    {
        static void method(Object o)
        {
            Console.WriteLine("Object");
        }

        static void method(double[] arr)
        {
            Console.WriteLine("double[] arr");
        }

        static void method(int i)
        {
            Console.WriteLine("int i");
        }

        static void Main(string[] args)
        {
            method(null);
        }
    }

Который выводит "double[] arr". Я понимаю, почему он не вывел "int i" - стандартному int присвоить null нельзя, но почему не "Object" или не выдал ошибку при компиляции, ссылаясь на неоднозначность вызова?

P.S. Пришла в голову мысль, что при выборе метода для выполнения компилятор идёт снизу вверх по иерархии классов, поэтому, найдя double[] в качестве аргумента, он его и вызывает. Я прав или нет?

Автор: lomaster 14.10.2012, 17:54
Правы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)