Паттерн стратегия C#

Паттерн Стратегия определяет семейство схожих алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость. Он позволяет модифицировать алгоритмы независимо от их использования на стороне клиента. Если простыми словами, то определяются схожие функции помещая их в собственные классы и позволяет их изменять во время работы программы. Из представленного примера ниже, мы видим схожий функционал всех уток, […]

Класс шифрования C#

Этот класс упрощает быстрое шифрование данных паролем с помощью встроенных функций .NET Framework. using System.Text; using System.Security.Cryptography; using System.IO; class Encryptor { public static byte[] Encrypt(byte[] input, string password) { try { TripleDESCryptoServiceProvider service = new TripleDESCryptoServiceProvider(); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] key = md5.ComputeHash(Encoding.ASCII.GetBytes(password)); byte[] iv = md5.ComputeHash(Encoding.ASCII.GetBytes(password)); return Transform(input, service.CreateEncryptor(key, iv)); } […]

Экспорт данные в CSV C#

Простой метод записи данных в формате DataTable или DataView на C# в CSV-файл. using System; using System.Data; using System.Windows.Forms; using System.IO; private void ExportDatatviewToCsv(string iFilename, DataView dv) { // Open output stream StreamWriter swFile = new StreamWriter(iFilename); // Header string[] colLbls = new string[dv.Table.Columns.Count]; for (int i = 0; i < dv.Table.Columns.Count; i++) { colLbls[i] […]

Создание скриншотов с помощью C #

Код использует GDI в C#.NET для рисования основного экрана на растровом изображении. public class API { [DllImport(«user32.dll», ExactSpelling = true, SetLastError = true)] public static extern IntPtr GetDC(IntPtr hWnd); [DllImport(«user32.dll», ExactSpelling = true)] public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC); [DllImport(«gdi32.dll», ExactSpelling = true)] public static extern IntPtr BitBlt(IntPtr hDestDC, int x, int y, […]

Вычисляет угол, под которым точка находится к началу координат и обратно C#

Используя простую математику, мы можем преобразовать между углами (в градусах) и точками координат XY. Полезно при работе с элементами круга. /// <summary> /// Вычисляет точку, находящуюся под углом от начала координат (0 справа) /// </summary> private PointF DegreesToXY(float degrees, float radius, Point origin) { PointF xy = new PointF(); double radians = degrees * Math.PI […]