Автоматизация бизнеса

Пользовательский поиск

среда, 3 июля 2013 г.

Как изменить шрифт в Visual Studio

Для того, чтобы изменить шрифт написанного кода в Visual Studio выполните следующие шаги (в примере используется Visual Studio 12 )

Шаг 1 . Выбрать Меню Tools

понедельник, 10 декабря 2012 г.

Класс CryptoStream

Класс CryptoStream связывает потоки с криптографическими преобразованиями. Для зашиты данных принимается их шифрование секретным ключом. В зависимости от алгоритма, для дешифрования может понадобится тот же ключ или другой. CryptoStream принадлежит пространству имен System.Security.Cryptography. Класс используется для выполнения криптографических операций на объекте Stream.
Конструктор CryptoStream принимает три параметра. Первый из них задает используемый поток, второй - криптографические преобразование, третий указывает доступ на чтение или запись к криптографическому потоку.

понедельник, 1 октября 2012 г.

C# оценка времени выполнения кода

В зависимости от требуемой точности оценку времени выполнения можно получить разными способами.

Измерение с помощью TickCount 

При этом способе точность получится наименьшая.
            int start = Environment.TickCount;
            // ваши действия
            int end = Environment.TickCount;
            Console.WriteLine("Ticks : " + (end-start)); //ваш результат

Измерение с помощью Ticks

В этом случай  вы получите более точный результат . Точность 100 наносекунд.
            long start = DateTime.Now.Ticks;
            // ваши действия
            long end = DateTime.Now.Ticks;
            Console.WriteLine("Ticks : " + (end-start)); //ваш результат

Измерение с помощью QueryPerformance

Самую высокую точность (1/3579545 секунды) можно получить данным способом.
      
       [System.Runtime.InteropServices.DllImport("kernel32.dll")]
        extern static short QueryPerformanceCounter(ref long x);
        [System.Runtime.InteropServices.DllImport("kernel32.dll")]
        extern static short QueryPerformanceFrequency(ref long x);
        long ctrl1 = 0, ctrl2 = 0, freq = 0;

и уже в вашем методе дополняете код .
// начало измерения
            if (QueryPerformanceCounter(ref ctrl1) != null)
            {
                // ваши действия
                
                // Завершение измерения
                QueryPerformanceCounter(ref ctrl2);
                QueryPerformanceFrequency(ref freq);
                Console.WriteLine("Минимальное разрешение : 1/" + freq + " сек.");
                Console.WriteLine("Время выполнения " + (ctrl2 - ctrl1) * 1 / freq + " сек.");
            }

воскресенье, 30 сентября 2012 г.

C# List и Как найти нужный элемент

Класс List<T> строго типизированный список объектов. Объекты доступный по индексу. Поддерживает методы для поиска по списку, выполнения сортировки и других операций со списками.
Ниже приведен пример, где поиск осуществляется в цикле foreach и методом Find класса List<T>.

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
namespace Blogger_ListT
{
    class Program
    {
        class MenuForOrder
        {
            public MenuForOrder()
            {
                Id = -1;
                Name = string.Empty;
                Price = -1;
            }
            public MenuForOrder(int id,string name,int price)
            {
                Id = id;
                Name = name;
                Price = price;
            }
            private int Id;
            private string Name;
            private int Price;
            public int ID
            {
                get
                {
                    return Id;
                }
                set
                {
                    Id = value;
                }
            }
            public string NAME
            {
                get
                {
                    return Name;
                }
                set
                {
                    Name = value;
                }
            }
            public int PRICE
            {
                get
                {
                    return Price;
                }
                set
                {
                    Price = value;
                }
            }
            public override string ToString()
            {
                return this.Id.ToString()+" "+this.Name+" "+this.PRICE.ToString();
            }
        }
     
        static List<MenuForOrder> lMenuForOrder ;
     
        static void Main(string[] args)
        {
            lMenuForOrder = new List<MenuForOrder>();
            for (int i = 1; i < 100000; i++)
            {
                lMenuForOrder.Add(new MenuForOrder(i, "Mohito", 250));
            }

            Stopwatch sw=new Stopwatch();
            sw.Start();
            MenuForOrder findeditem = lMenuForOrder.Find(delegate(MenuForOrder m) { return m.ID == 99999; });
            Console.WriteLine(findeditem.ToString() + " Find Time: " + sw.ElapsedMilliseconds.ToString());
            sw.Start();

            foreach (MenuForOrder mfo in lMenuForOrder)
            {
                if (mfo.ID == 99999)
                    Console.WriteLine(mfo.ToString() + " Find Time: " + sw.ElapsedMilliseconds.ToString());
            }
         
            Console.Read();
        }
    }
}

Вот какой результат получился


Но если поменять местами цикл и метод, то получается такой же ответ.
Метод Find  более читабелен. Но в нем опять таки реализован цикл foreach. Данный пример использует FrameWork 2.0 для более старших версии используйте Find метод вот так
MenuForOrder findeditem =  lMenuForOrder.Find(finded => finded.Id ==99999).
Жду Откликов.

среда, 18 июля 2012 г.

Как создать браузер, работа с WebBrowser C#

Для того, чтобы создать браузер необходимо создать приложение Windows Forms, которое включает в себя элементы управления Button, TextBox, Panel и конечно WebBrowser. Конечный пользователь должен набрать адрес веб страницы, а наш браузер должен отобразить документ.
И так приведу список всех элементов.