Архив категорий: Практикум

Добавление логирования хода выполнения программы

Доброго времени суток! Эта статья носит справочный характер. В ней приведен пример (своего рода quick start) использования логера log4net в программе на C# (пока без дополнительных разъяснений).

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

Шаг 1. Создать основной класс, отвечающий за обеспечение логирования в своем проекте: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net;
using log4net.Config;

namespace TestLog
{
   public static class Logger
   {
      private static ILog log = LogManager.GetLogger("LOGGER");
      
      //Возвращает объект, через который будет осуществляться логирование
      public static ILog Log
      {
          get { return log; }
      }

      //Инициализация логера
      public static void InitLogger()
      {
          //Считывание конфигурации логера из файла
          XmlConfigurator.Configure(new System.IO.FileInfo("D:\\Logs\\TestConf.xml"));
      }
 }
}

Как сделать невидимым элемент графического интерфейса в C#

Визуальное скрытие элементов графического интерфейса

Всем доброго времени суток! В этой статье я расскажу о том, как можно скрывать (делать невидимыми для пользователя) элементы графического интерфейса, например, кнопки, или поля ввода текста. Скрывать элементы интерфейсы в Windows Forms приложениях можно как до компиляции приложения, так и после этого (во время выполнения приложения). При этом, скрытые элементы интерфейса, в дальнейшем, можно сделать видимыми, что дает программисту возможность создавать более удобные в использовании приложения.

Скрываем кнопку до компиляции приложения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C#. Кодо-ориентированные исключения

Исключения, ориетированные на коды ошибок

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

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

Способы инициализации объектов в C#

Инициализация объектов

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

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