C # Динамически типизированный язык - PullRequest
7 голосов
/ 19 февраля 2009

Благодаря новым возможностям .NET 3.5 (таким как var, Lambda, linq и т. Д.) И многим другим возможностям мы можем сделать вывод, что C # не только статически типизированный язык, но также Динамически типизированный ?

Почему или почему нет?

Редактировать # 1

Как утверждают многие приведенные ниже постеры, .net 4.0 добавит динамическую типизацию к языку. Это замедлит язык?

С каждым выпуском csharp берет что-то из разных языков. Что касается .Net1.1, наши предки не собирались даже делать его функциональным языком ...

Изменить # 2

Я думаю, что многие из вас неправильно поняли вопрос; поскольку я имею в виду язык C # в целом, включая предстоящий выпуск 4.0. Таким образом, можно сказать, что язык динамически типизирован ...

Ответы [ 4 ]

12 голосов
/ 19 февраля 2009

C # не динамически типизируется - все типы статически выводятся в упомянутых вами примерах. Версия next C # будет включать некоторые динамические функции для работы с COM и действительно динамическими языками.

[Edit # 1] Да Новая динамическая функция C # будет работать медленнее, так как все, что ее использует, потребует позднего связывания. Однако это только замедлит ваше приложение, если вы его используете - это не изменение самого основного языка. C # 4 будет статически типизированным языком с возможностью работы с типами с поздней привязкой.

[Edit # 2] Нет C # 4 не будет динамически типизированным языком. В C # 4 вводится новый тип dynamic, который заменяет позднюю привязку к членам типа вместо статической проверки типов. Динамические возможности будут доступны только для этих динамических типов. Базовая система типов C # не изменилась.

2 голосов
/ 19 февраля 2009

Нет, он по-прежнему статически типизирован, var / lambda / linq использует подсказки компилятора, поэтому тип известен во время компиляции, динамическая / утиная типизация будет идти с c # 4.0

1 голос
/ 19 февраля 2009

Динамически набирается ?! Нету. Технически, C # является статически типизированным языком. Он имеет возможности динамической диспетчеризации методов через службы отражения CLR, предоставляемые средой выполнения .NET (которая была доступна начиная с версии 1.0 и не имеет ничего общего с функциями .NET 3.5, функции C # 3.0 по-прежнему статически типизированы). C # 4.0 будет иметь истинную динамическую типизацию.

0 голосов
/ 19 февраля 2009

Комментаторы: Вы уверены, что уверены, что динамические типы можно так легко содержать? У меня такое ощущение, что их последствия распространятся.

...