Методы в C#. Возвращаемые значения

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

Читать далее

Методы в C#. Параметры методов

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

Читать далее

Лабораторная работа по C#. Операции побитового сдвига

лабораторная работа C#

Задача: Даны два числа — 16 и 2. Напишите программу на C#, которая, используя операции сдвига влево (<<), сдвига вправо (>>), а также сложение или вычитание над представленными числами получает итоговый результат равный 127.

Читать далее

Побитовые операторы и операторы сдвига в C#

Отдельную группу операторов C# составляют побитовые операторы и операторы сдвига. Побитовые операторы и операторы сдвига оперируют разрядами числа. Чтобы разобраться с действием этих операторов, нам необходимо иметь хотя бы начальные знания о двоичной системе счисления, в которой число представляется в виде 0 и 1. Например, число 5 в двоичной системе представляется как 0101, а число 7 — 0111.

Читать далее

Знакомство с Visual Studio Code

Разработка приложений в настоящее время ведется с использованием таких специализированных средств, как IDE (интегрированные среды разработки) и редакторы кода. Выбор того или иного средства разработки зависит в первую очередь от наших предпочтений. Кому-то требуется иметь сразу и всё под рукой — и компилятор, и отладчик, и средства тестирования и рефакторинга, и ещё много всего, что пока может быть вам и не понятно, но разработчику необходимо, а кому-то достаточно текстового редактора с подсветкой синтаксиса и пары инструментов для сборки/отладки. В первом случае, предпочтение будет отдаваться полноценным IDE (нередко — платным), например Visual Studio. Во втором случае — можно обойтись бесплатными инструментами. Одним из наиболее популярных редакторов кода на сегодняшний день является Visual Studio Code, или проще — VS Code. Именно в этом редакторе мы сегодня повторим то, приложение, которое разработали в предыдущей части.

Читать далее

Пользовательские конвертеры. Класс JsonConvert

JSON в C#

В подавляющем большинстве случаев, сериализатор из System.Text.Json вполне справляется с сериализацией и десериализацией объектов практически любой сложности. Однако, встречаются моменты, когда даже с множество настроек из JsonOptions не справляются с десериализацией объекта. В этом случае, мы можем написать свои пользовательские конвертеры для класса JsonSerializer.

Читать далее

EF Core — ошибка «Could not load assembly ‘XXXX’. Ensure it is referenced by the startup project ‘XXXX'»

EF Core 7

При попытке создать миграцию в EF Core 7 получил ошибку «Could not load assembly ‘XXXX’. Ensure it is referenced by the startup project ‘XXXX’«. В консоли диспетчера пакетов вывод выглядит следующим образом:

PM> Add-Migration YYYYYY
Build started…
Build succeeded.
Could not load assembly ‘XXXX’. Ensure it is referenced by the startup project ‘XXXX’.

Если вы столкнулись с такой же ошибкой, то, возможно, что представленное ниже решение вам поможет.

Читать далее

Parallel LINQ (PLINQ) в C#. Обработка ошибок и отмена запроса (метод WithCancellation)

PLINQ

При выполнении параллельных запросов в PLINQ также могут возникать различные исключения, которые необходимо каким-либо образом обрабатывать. При выполнении параллельных запросов PLINQ разбивает исходную последовательность на части, каждая из которых обрабатывается в отдельном потоке. При этом, если в каких-либо потоках возникают исключения, то все они собираются в одном объекте исключений типа AggregateException.

Читать далее

Parallel LINQ (PLINQ) в C#. Параметры слияния в PLINQ (методы WithMergeOptions и ForAll)

PLINQ

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

Читать далее