|
|
@@ -14,10 +14,12 @@ C# (произносится "Си шарп") - это язык программ
|
|
|
| Свойства | Включение полей с логикой доступа | Чистота кода, контроль доступа |
|
|
|
| LINQ | Встроенные языковые запросы | Единый синтаксис запросов к разным источникам |
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
Ключевой особенностью, упрощающей жизнь начинающим, является встроенный язык запросов LINQ. LINQ позволяет писать описательные запросы к коллекциям, базам данных или XML, используя синтаксис, похожий на язык запросов, но встроенный прямо в код C#. Это снижает мыслительную нагрузку при переходе от работы с табличными данными к объектным моделям в коде. Например, фильтрация списка объектов выполняется одной строкой кода вместо целого цикла с условиями, что делает код более читаемым и менее подверженным ошибкам. LINQ работает с любым типом, реализующим интерфейс IEnumerable, что делает его универсальным инструментом.
|
|
|
|
|
|
+
|
|
|
+
|
|
|
Важно понимать, что LINQ бывает двух видов: LINQ to Objects для работы с коллекциями в памяти и LINQ to Entities для работы с базами данных через технологию Entity Framework. Во втором случае запросы не выполняются в клиентской памяти целиком, а преобразуются в SQL-запросы и выполняются на стороне сервера баз данных. Это позволяет эффективно работать с большими объемами данных, не загружая их полностью в оперативную память. Разработчику не нужно знать тонкости SQL для каждой конкретной базы данных - LINQ предоставляет единый интерфейс.
|
|
|
|
|
|
Современные версии C# (начиная с 8.0 и выше) продолжают развиваться, добавляя новые возможности, такие как ссылочные типы, допускающие null (для борьбы с ошибками нулевых ссылок), асинхронные потоки для работы с последовательностями данных, поступающих асинхронно, и шаблоны свойств для более выразительного сопоставления с образцом. Эти нововведения делают язык еще более безопасным и удобным, позволяя выражать сложные концепции лаконично и понятно.
|