Поделиться через


Дорожная карта для разработчиков на Python, изучающих C#

C# и Python используют аналогичные понятия. Эти знакомые конструкции помогут вам узнать C#, когда вы уже знаете Python.

  1. Объектно-ориентированное: Python и C# — это объектно-ориентированные языки. Все понятия, связанные с классами в Python, применяются в C#, даже если синтаксис отличается.
  2. Кроссплатформенный: Python и C# являются кроссплатформенными языками. Приложения, написанные на любом языке, могут работать на многих платформах.
  3. Сборка мусора. Оба языка используют автоматическое управление памятью с помощью сборки мусора. Среда выполнения освобождает память от объектов, на которые нет ссылок.
  4. Строго типизированные: Python и C# являются строго типизированными языками. Приведение типов не происходит неявно. Ниже описаны различия, так как C# статически типизированный, в то время как Python динамически типируется.
  5. Async / Await: Возможности async и await в Python были непосредственно вдохновлены поддержкой async и await в C#.
  6. Сопоставление шаблонов: Сопоставление шаблонов и выражений в Python match похоже на сопоставление шаблонов и выражений switch C#. Они используются для проверки сложного выражения данных, чтобы определить, соответствует ли он шаблону.
  7. Ключевые слова инструкции: Python и C# используют множество ключевых слов, таких как if, else, whileи forмногие другие. Хотя не весь синтаксис одинаков, есть достаточно сходства, чтобы вы могли понять C#, если знаете Python.

При изучении C# вы узнаете о важных концепциях, в которых C# отличается от Python.

  1. Отступы и маркеры: в Python новые линии и отступы являются элементами syntactic первого класса. В C# пробелы не имеют значения. Токены, такие как ;, разделяют операторы, а другие токены, такие как { и }, контролируют область видимости блоков для if и других операторов блоков. Однако для удобства чтения большинство стилей программирования (включая стиль, используемый в этих документах), используют отступ для укрепления областей блоков, объявленных { и }.
  2. Статическая типизация: в C#объявление переменной включает его тип. Переназначение переменной объекту другого типа создает ошибку компилятора. В Python тип может измениться при переназначении.
  3. Типы, допускающие значение NULL: переменные C# могут иметь значение NULL или не допускающие значение NULL. Тип, не допускающий значения null, — это тип, который не может принимать значение null (или ничто). Он всегда ссылается на допустимый объект. Тип nullable может ссылаться на допустимый объект или NULL.
  4. LINQ: ключевые слова выражения запроса, составляющие интегрированный язык запросов (LINQ), не являются ключевыми словами в Python. Однако библиотеки Python, такие как itertools, more-itertoolsи py-linq предоставляют аналогичные функциональные возможности.
  5. Обобщения: обобщения C# используют статическую типизацию C# для утверждения об аргументах, предоставленных для параметров типа. Универсальному алгоритму может требоваться указать ограничения, которым должен удовлетворять тип аргумента.

Наконец, существуют некоторые функции Python, недоступные в C#:

  1. Структурная (утки) типизация: в C# типы имеют имена и объявления. Кроме кортежей, типы, имеющие ту же структуру, не взаимозаменяемы.
  2. REPL: C# не имеет интерактивной оболочки (REPL) для быстрого создания прототипов решений.
  3. Значительные пробелы: необходимо правильно использовать фигурные скобки { и } для обозначения области видимости блока.

Изучение C#, если вы знаете Python, является легким процессом. Языки имеют аналогичные понятия и аналогичные идиомы для использования.