C# имеет слишком много функций языка?

Просто добавьте событие изменения в TextBox с вашим форматом

Private Sub TextBox1_Change()
    Me.TextBox1.Text = Format(Me.TextBox1.Text, "#" & Application.ThousandsSeparator & "###")
End Sub
35
задан Stefan Steinegger 28 April 2009 в 09:39
поделиться

10 ответов

Да, это риск - и обсуждается лот . Достигается тот момент, когда очень трудно подобрать C # с нуля. К счастью, ситуация немного стабилизировалась, и языковые изменения между C # 3.0 и C # 4.0 относительно незначительны.

На самом деле, я недавно проделал большую работу, пытаясь исправить проблему обобщенных CF и как часть исправления может фактически случиться, что код возвращается почти к методам C # 1.2 (нет, или очень мало, универсальных). Таким образом, большинство проблем можно решить с помощью более простых языковых конструкций. Дело в том: насколько трудно должно быть что-то сделать ?

Например, анонимные методы добавляют ЛОТ преимуществ для относительно небольшой сложности. динамический (4. 0) добавляет еще несколько для сценариев взаимодействия COM. Блоки итераторов неоценимы для кода в стиле LINQ ...

Я вижу много вопросов о нетривиальных частях C #, и я думаю, что мне будет трудно научить новичка всему C # из с нуля. Такие книги, как Jon's C # in Depth, хороши для людей, которые уже знакомы с основами (по крайней мере, C # 1.2; в идеале немного C # 2.0), но на самом деле они не предназначены для новичков (я знаю, что Джон не согласится).

Хитрость один действительно. К счастью, команда C # установила планку (для включения) очень высоко; что-то новое должно быть очень полезным, чтобы сделать это языком.

и я думаю, что мне будет трудно научить новичка всему C # с нуля. Такие книги, как Jon's C # in Depth, хороши для людей, которые уже знакомы с основами (по крайней мере, C # 1.2; в идеале немного C # 2.0), но на самом деле они не предназначены для новичков (я знаю, что Джон не согласится).

Хитрость один действительно. К счастью, команда C # установила планку (для включения) очень высоко; что-то новое должно быть очень полезным, чтобы сделать это языком.

и я думаю, что мне будет трудно научить новичка всему C # с нуля. Такие книги, как Jon's C # in Depth, хороши для людей, которые уже знакомы с основами (по крайней мере, C # 1.2; в идеале немного C # 2.0), но на самом деле они не предназначены для новичков (я знаю, что Джон не согласится).

Хитрость один действительно. К счастью, команда C # установила планку (для включения) очень высоко; что-то новое должно быть очень полезным, чтобы сделать это языком.

25
ответ дан 27 November 2019 в 15:39
поделиться

На мой взгляд, в C # не так уж много функций. Практически любая из новых модных функций 2.0 и 3.0 полезна мне и моим коллегам каждый день, и даже парень из VB быстро подобрал их. Некоторые из новых функций делают изучение языка еще проще, например, использование встроенных лямбд вместо делегатов и ключевых слов var и инициализаторов объектов, и это лишь некоторые из имен C # 3.0 (в C # 3.5, кстати, вы путаетесь что в .NET 3.5).

C # в большинстве случаев упрощен, а мощные функции просты в использовании, в отличие от C ++, где дизайнеры говорят, что с C ++ можно делать абсолютно все, но они никогда не упоминают, что многие вещи становятся настоящей болью, что происходит потому, что C ++ может делать действительно все, включая многие вещи, которые большинство программистов будут использовать редко, если вообще когда-либо. Поддержка всего означает, что многие вещи сложнее, чем необходимо, что усложняет изучение. В этом разница между языком, в котором функции затрудняют изучение, но в то же время очень мощным, и языком, в котором функции облегчают использование и повышают производительность, хотя и менее эффективны в теории.

И в чистом количестве функций C # далеко от C ++, особенно если вы включите в эту картинку C ++ 0x, что облегчает изучение, несмотря на то, что у некоторых людей «слишком много возможностей». Моя точка зрения на C ++ заключалась в том, что в C # на самом деле не так много возможностей, если хотите.

все же очень мощный и язык, в котором функции облегчают использование и повышают производительность, хотя и являются менее мощными в теории.

И, в чистом количестве функций, C # далек от C ++, особенно если вы включаете C ++ 0x на этом рисунке, что облегчает обучение, несмотря на то, что у некоторых людей «слишком много функций». Моя точка зрения на C ++ заключалась в том, что в C # на самом деле не так много возможностей, если хотите.

все же очень мощный и язык, в котором функции облегчают использование и повышают производительность, хотя и являются менее мощными в теории.

И, в чистом количестве функций, C # далек от C ++, особенно если вы включаете C ++ 0x на этом рисунке, что облегчает обучение, несмотря на то, что у некоторых людей «слишком много функций». Моя точка зрения на C ++ заключалась в том, что в C # на самом деле не так много возможностей, если хотите.

7
ответ дан 27 November 2019 в 15:39
поделиться

Вам, вероятно, следует прочитать этот пост в блоге Эрика Ганнерсона, члена команды по компиляции C # в Microsoft.

Он объясняет, как новые возможности появляются в языке. По сути, они получают «-100 баллов» в начале, «что означает, что это должно оказать существенное положительное влияние на весь пакет, чтобы оно стало языком».

2
ответ дан 27 November 2019 в 15:39
поделиться

На самом деле много споров о том, как должен развиваться C #. Действительно, некоторые считают, что добавляя много новых возможностей, язык становится трудным для изучения, но большинство рассматривает C # как язык программирования с множеством парадигм. Прежде всего, это полнофункциональный объектно-ориентированный язык со строгой типизацией, но у него есть концепции, которые до недавнего времени ограничивались функциональными и динамическими языками программирования. Эти функции, хотя они могут показаться запутанными для новичка, предлагают большую гибкость и мощь, и иногда их может оказаться достаточно, чтобы удержать вас от использования языка приложения в приложении и решения всех проблем интеграции. Вы всегда можете поговорить о том, что должно быть реализовано в самом языке и что должно быть частью фреймворка, но имейте в виду, что большинство функций, которые вы упоминаете и считаете излишними, на самом деле являются результатом запросов разработчиков, и они предоставляют функциональность, которая отличает C # от других языков (на ум приходит Java). Как только программист привыкнет к этим функциям, он осознает их преимущества.

Вы упомянули Linq, и я должен признать, что сначала я был немного скептически настроен, поскольку я всегда считал, что SQL является вполне естественным языком для работы с данными, но теперь мне действительно нравится и я вижу преимущество в том, что запросы оцениваются во время компиляции. Лямбда-выражения всегда хороши, в действительности они могут затруднить чтение кода при чрезмерном использовании, но иногда они действительно упрощают его. Я не большой поклонник ключевого слова 'var', но иногда оно может пригодиться, и пусть ' Будьте честны, если вы не будете использовать его при написании Linq, код будет трудным для чтения. Я сам начинающий программист, и я не думаю, что эти концепции трудно выучить. Я также часто использую Java в школе, и мне очень не хватает некоторых возможностей C # (я не говорю, что Java - плохой язык, напротив, в некоторых отношениях я думаю, что он лучше, чем контракты на C # -код, особенно для академические цели).

2
ответ дан 27 November 2019 в 15:39
поделиться

Я не думаю, что изучение новых языковых возможностей - это та часть, о которой стоит беспокоиться: изучение правильных ситуаций, в которых их можно применять, занимает десятилетия.

Иногда они едва ли могут понять код, который написан людьми, использующими все новые функции.

Это реальная проблема, которую вам нужно решить. Кодовая база, разбитая на разные стили и не поддерживаемая всеми, является дорогой базой кода для поддержки. Использование новых функций для написания «короткого и красивого кода» может не максимизировать полезность этого кода для вашей организации.

В чем основная причина вашей ситуации? Является ли это:

  • Некоторые программисты не понимают новые функции
  • Новые функции были использованы не по назначению
  • Новые функции были использованы для устранения недостатков дизайна (часто в случае с отражением)

Я бы поспорил деньги это будет смесь вышеперечисленного.

2
ответ дан 27 November 2019 в 15:39
поделиться

Даже если я обычный пользователь C #; с большим опытом работы в Delphi, C ++ и Python; Я могу понять концепцию C # довольно легко. C # - правильно сбалансированный язык, на мой взгляд. Единственное раздражение в том, что я едва мог вспомнить достаточно синтаксиса (особенно связанного с Linq) в своей голове, чтобы производить код с сенсорной скоростью печати, как я могу в Python. Мое предпочтение к паскальскому синтаксису также может помешать мне. Однако с помощью всемогущего Visual Studio.NET Express это совсем не проблема.

Пока они предоставляют такой замечательный инструмент бесплатно, я считаю, что C # с VS.NET - одна из лучших доступных сред кодирования. .

0
ответ дан 27 November 2019 в 15:39
поделиться

Мне тоже нравятся большинство новых функций, и, честно говоря, я бы не хотел терять методы расширения и linq в целом.

Что касается простоты обучения, я думаю, что проблема - это скорее проблема для начинающих, и, исходя из опыта, их быстрое освоение - это, безусловно, случай выбора самых больших побед и оказания им помощи, когда они сталкиваются с чем-то другим. Помимо многопоточности, понимание общих понятий, по-видимому, является ключом к получению преимуществ от других функций.

Каждая дополнительная функция, безусловно, приносит дополнительные преимущества. Со временем появятся новые языки, которые облегчат использование тех же самых функций, но это ни в коем случае не означает, что мы не должны пытаться улучшить те, которые у нас есть сейчас.

0
ответ дан 27 November 2019 в 15:39
поделиться

Да, C # имеет много функций, но именно поэтому мы его используем! Любой, начинающий карьеру программиста, должен рассчитывать на карьеру, изучая / изучая новые вещи и сдавая экзамены! Как человек, который любит изучать новые вещи, именно поэтому мы любим его!

Лично я нахожу лямбда-выражения и методы расширения, например, чрезвычайно полезными. Для создания крупномасштабных распределенных приложений, в которых я хочу разделить данные и логику, я обнаружил, что LINQ не слишком полезен. Но я с нетерпением жду возможности c # 4, такие как необязательные параметры.

Как уже упоминал @Alex, я думаю, что изучение того, как правильно использовать функции, является наиболее сложным аспектом. Хорра для тех из нас, кто был с C # с первых дней!

0
ответ дан 27 November 2019 в 15:39
поделиться

Именно благодаря этим функциям мы используем C # и делаем C # «современным». Если бы C # не предлагал классы, например - или многопоточность, кто-нибудь использовал бы это? Сборка - это пример языка, который действительно не имеет особенностей. Глупо легко учиться как язык, но никто не хочет его использовать.

Языки, специфичные для малого домена, на самом деле являются крайностью в этом. Взять, к примеру, классическое регулярное выражение. Он получил кучу возможностей только для работы со строками. Если бы этого не было, кто бы это использовал? Эти особенности делают его таким мощным и выразительным. То же самое с более общими языками.

Не все эти функции требуются для написания C #. Понимание кода на C # - вот где появляются проблемы. Но если бы это не было функциями в C #,

-1
ответ дан 27 November 2019 в 15:39
поделиться

Да, C # do обладает множеством функций, и это не мое мнение, это факт , это богатая платформа. Если кто-то хочет поспорить об этом и заявить, что этот язык не имеет много функций, пожалуйста, покажите мне язык, который действительно имеет много функций, и объясните, почему он имеет гораздо больше функций, чем C #.

В любом случае, Я не вижу никаких проблем с этим . Вы всегда можете выбрать подмножество функций, которые вам подходят, и использовать их. нет ничего плохого в языке, богатом функциями, если функции используются правильно и не применяются в коде только потому, что они существуют.

-1
ответ дан 27 November 2019 в 15:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: