|
Programmer ASP.NET MVC C# |
Programming
|
||
Предыдущий | Следующий | |
При стандартном программировании мы получаем ссылку на объект, а потом вызываем метод этого объекта, пример: Calculator calc = GetCalculator(); Код становиться более интересным если класс не является статическим типов, т.е. он создается не на языке C#, а например написанный на Ruby, Python или JavaScript или это COM объект. Тогда для вызова нужного метода нужно было воспользоваться вот таким кодом: object calc = GetCalculator(); Если бы класс был написан на JavaScript тогда, наш код можно изменить на следующий: ScriptObect calc = GetCalculator(); В C# 4.0 мы просто написали бы следующий код: dynamic calc = GetCalculator(); И все будет работать. Если мы объявляем объект как dynamic, то это означает что он будет формироваться на этапе работы программы и все неизвестные методы будут игнорироваться компилятором. Вообще то я немного опасаюсь такого подхода, потому что оно может привести к глупым ошибкам, например, код int result = calc.Ad(10, 20); тоже успешно пройдет компиляцию |