Паттерн Итератор предоставляет механизм последовательного перебора элементов коллекции без раскрытия ее внутреннего представления. Кроме того, перебор элементов выполняется объектом итератора, а не самой коллекцией.Это упрощает интерфейс, и реализацию коллекции, а также способствует более логичному распределению обязанностей. При использовании итераторов коллекция избавляется от одной обязанности поддержки операций перебора данных. Итератор предоставляет общий интерфейс перебора элементов коллекции, […]
Паттерн Шаблонный Метод
Паттерн Шаблонный Метода задает скелет алгоритма в методе, оставляя определение реализации некоторых шагов субклассам. Субклассы могут переопределять некоторые части алгоритма без изменения его структуры. Основной задаче паттерна является создание шаблона алгоритма, то есть метод определяющий алгоритм в виде последовательности шагов. Один или несколько шагов определяются ввиде абстрактных методов, реализуемых субклассами. Таким образом гарантируется неизменность структуры […]
Как рассчитать возраст по дате рождения на C#?
Приведу небольшой фрагмент кода, который позволяет по вводу даты, рассчитать ваш возраст. using System; using System.Collections.Generic; using System.Linq; using System.Net; namespace Work { class Program { static void Main(string[] args) { var date= CalculateAge(new DateTime(1980, 12, 22)); Console.WriteLine($»Ваш возраст: {date}»); Console.ReadKey(); } public static int CalculateAge(DateTime BirthDate) { int YearsPassed = DateTime.Now.Year — BirthDate.Year; if […]
Как проверить подключение к интернету на C#?
Проверка интернет-соединения не такая уж тривиальная задача как может показаться, и для этого существует много способов, но рассмотрим самый простой. Мы отправим запрос к сайту google и, если он вернет ответ, соответственно подключение к интернету имеется, в обратном случаи интернет отсутствует. using System; using System.Collections.Generic; using System.Linq; using System.Net; namespace Work { class Program { […]
Криптография и защита на C#
В этом примере мы зашифруем сообщение с помощью RSA, и проверим его на соответствие вводимого сообщения, путем сверки цифровой подписи. Для этого создадим вспомогательные классы для работы: using System; using System.Security.Cryptography; using System.Text; public class MD5HashHelper { public byte[] GetHash(string message) { byte[] data; data = UTF8Encoding.ASCII.GetBytes(message); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); return md5.ComputeHash(data, 0, […]