C#. Статьи о C#.

Статьи по теме языка программирования C#. Перейти »

Всякая всячина...

Статьи и заметки, которые могу быть интересны не зависимо от языка программирования, на котором они реализованы. Перейти »

Реклама

Электронные устройства и аксессуары Перейти »

 

Форматирование даты и времени в C#

Доброго времени суток! Эта статья является продолжением той, в которой я рассказывал как можно получить текущее время в программе, написанной на C#… Статья будет содержать справочную информацию. А если конкретнее, то я расскажу о форматировании даты/времени при выводе (а точнее, преобразовании в строку). Сначала я приведу примеры стандартных вариантов форматирования (эти варианты могут закрыть большинство Ваших потребностей), а во второй части, я коснусь пользовательских (кастомных) вариантов форматирования (дающих большее свободы программисту).

Как узнать текущее время в C#

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

C#. Форматирование строк. Преобразование числа в строку.

Доброго времени суток! В этой статье я расскажу (а скорее покажу) как в C# можно преобразовать число в строку, применяя при этом форматирование. Форматирование применяют, чтобы добиться определенных нюансов, например, ограничить количество символов после запятой в десятичной дроби и т.п.  В этой статье, я постараюсь сделать уклон исключительно на практику. И так, приступим…

Первым делом, я покажу как можно просто преобразовать число в строку. Точнее, я покажу один из нескольких способов. По сути, он заключается в вызове метода «ToString()» на целочисленной переменной. Всё элементарно, см. код ниже:

C#. Использование буфера обмена. Часть 1.

Доброго времени суток! В этой статье я познакомлю Вас с возможностями использования буфера обмена операционной системы, которые предоставляет язык программирования C#. Данной теме я планирую посвятить несколько статей, поэтому в первой (той, которую Вы сейчас читаете) я расскажу о самых основных моментах, но которых может хватить  пожалуй в 90% случаях с которыми вы столкнетесь. Вы узнаете как записать (поместить) текст в буфер обмена, как извлечь текст из буфера обмена, как очистить буфер обмена и т.п. И так, можно сказать что буфер обмена есть не что иное как промежуточное хранилище, в которое помещаются определенные данные, когда пользователь операционной системы копирует (Ctrl+C)/вырезает (Ctrl+X) какую-либо информацию (будь то текст из текстового редактора, или группа файлов из каталога и т.п.).

Оптимизация пузырьковой сортировки. Реализация на C#.

Сортировка пузырьком

Доброго времени суток! В этой статье я расскажу о простой оптимизации алгоритма пузырьковой сортировки (bubble sort), пример простейшей реализации которого я приводил в предыдущей статье (рекомендую прочесть, чтобы понять суть данной стать). Идея данной оптимизации заключается в сокращении избыточных итераций, т. е. поочередных переборов элементов исходного массива. Работать (давать положительный результат) данная модификация алгоритма будет только в том случае, когда избыточные итерации действительно присутствуют (например, попался почти отсортированный массив). Ниже, приведен результат выполнения программы из предыдущей статьи, с массивом, который практически отсортирован. В консоль выводится массив до сортировки, и после каждого перебора его элементов (и видные перестановки его элементов, выполненные во время каждой из итераций).

Пузырьковая сортировка. Реализация на C#.

Сортировка пузырьком

Доброго времени суток! В этой статье я расскажу об алгоритме сортировки массивов, достаточно простом и не самом эффективном (причем, далеко не самом), но тем не менее, для изучения базовых алгоритмов (в данном случае сортировки), разобрать его будет весьма полезно для начинающих программистов. Сортировка, реализованная по данному алгоритму, называется «пузырьковая сортировка» (bubble sort).

И так, пузырьковая сортировка относится к так называемым сортировкам обменами. Основная идея заключается в последовательных, и многократных переборах всех элементов массива, с сравнением смежных элементов (первый со вторым, второй с третьим, третий с четвертым и т.д.). При этом, если сравниваемые (смежные) элементы массива не отсортированы относительно друг друга, то они меняются местами.

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

Таймер. Работа с таймером в C#

Доброго времени суток! В этой статье я расскажу об использовании таймера в программах, написанных на C#, а в конце мы напишем простейшую программу часы. Статья будет практического характера и для её понимания Вам нужно владеть начальными знаниями программирования на языке C# и работы с WindowsForms приложениями. Но сначала, я расскажу для чего же нужны таймеры в программах. Чаще всего, таймеры используют для периодического вызова определенного метода (подпрограммы). У компонента «Timer» есть специальное (и единственное событие) — «Tick». Вот обработчик этого события, далее обработчик таймера, и вызывается с заданной программистом периодичностью.

Как я уже сказал, рассказ о таймерах будет в контексте WindowsForms. Так что я предлагаю создать новый проект приложения с графическим интерфейсом (WindowsForms). После чего, на главную форму из панели инструментов перенести компонент «Timer». Расположение компонента «Timer» в панели инструментов показано на рисунке ниже.

«Пустые» значения в C#

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

Например, наша программа получает из «внешнего мира» (базы данных, по сети, или от пользователя с клавиатуры, или еще каким-то образом) некое значение, и есть два сценария развития событий:

  • первый, это когда значение получено (например, пользователь ввел значение);
  • второй, когда значение не получено (пользователь отказался вводить значение, и перешел к следующему шагу).

Генерация случайных чисел в C#

Доброго времени суток! Эта статья носит практический характер и в ней я расскажу о том, как использовать генератор случайных чисел в C# и для чего это Вам может пригодиться. Хотя, если на чистоту, то речь пойдет о генераторе псевдослучайных чисел…

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

Освобождение ресурсов в C# (Часть 2. IDisposable)

Доброго времени суток! В этой статье я продолжу рассказывать об освобождении неуправляемых ресурсов внутри объектов, в программах, написанных на C#. В предыдущей статье, я рассказывал о том, как можно выполнить эту задачу используя финализаторы, а так же, перечислил негативные стороны применения данного подхода. В этой статье, я расскажу о ещё одной возможности для освобождения ресурсов — о реализации интерфейса IDisposable.

И так, если в объектах создаваемого Вами класса используются неуправляемые ресурсы и Вы хотите разработать механизм для их освобождения, логично реализовать интерфейс IDisposable. Который содержит всего лишь один метод, как не странно, это метод Dispose (без параметров и возвращаемого значения).