Лучшая подборка книг и информации по программированию.Скидка 11%, подарки к заказу и бесплатная доставка!
RSS иконка EMail иконка Домашняя иконка

  • Пример BubbleSorter.

    Написано 02.07.2010 21:26 devalmor Нет комментариев

    Теперь мы приведем пример, в котором делегаты чрезвычайно полезны. Напишем класс BubbleSorter. Он реализует статический метод Sort(), который в качестве первого параметра принимает массив объектов и сортирует его в возрастающем порядке. Например, если мы передадим массив int {0. 5, 6, 2,1}, метод отсортирует его так: {0,1. 2, 5, 6}.
    Алгоритм пузырьковой сортировки является довольно известным и очень простым (хотя неэффективным) способом сортировки чисел. Он работает, проходя по всему массиву, сравнивая каждую пару чисел и меняя их в случае необходимости, в результате чего большие числа постепенно перемещаются в конец массива. Для сортировки int метод пузырьковой сортировки выглядит так:
    Читать продолжение записи »

  • Простой пример использования делегатов.

    Написано 02.07.2010 21:11 devalmor Нет комментариев

    Определим класс MathOperations, который имеет пару статических методов для выполнения действий над числами double. Затем используем делегатов для вызова этих методов. Математический класс выглядит следующим образом:

    class MathOperations{
    public static double MultiplyByTwo(double value){
    return value*2;
    }
    public static double Square(double value){
    return value*value;
    }
    }

    Читать продолжение записи »

  • Использование делегатов в С#.

    Написано 10.05.2010 22:00 devalmor Нет комментариев

    Для того чтобы можно было использовать класс в С#, нужно выполнить два действия. Во-первых, необходимо определить класс, т.е. сказать компилятору, какие поля и методы образуют класс. Затем (если только мы не используем статические методы) необходимо создать экземпляр класса, т.е. создать объект этого класса. То же самое справедливо для делегатов. Сначала требуется определить делегатов, которые будут применяться. Определение делегата означает указание компилятору того, какой тип методов будут представлять делегаты этого типа. Затем нужно создать один или несколько экземпляров делегатов.
    Синтаксис для определения делегатов выглядит следующим образом: delegate void VoidOperation(uint X);
    В данном случае мы определили делегата VoidOperation и указали, что каждый экземпляр этого делегата может содержать сведения о методе, принимающем один параметр uint и возвращающем void. Ключевым моментом является то, что делегаты безопасны по типу. При определении делегата вы должны указать все подробности сигнатуры метода, который он будет представлять.
    Читать продолжение записи »

  • Делегаты.

    Написано 10.05.2010 21:48 devalmor Нет комментариев

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

    int I = int.Parse (”99″);

    Здесь вызывается статический метод Parse() из класса System.Int32. Этот метод принимает один параметр — для данного перегруженного варианта — строку. Можно рассматривать ситуацию следующим образом. Метод Parse() производит какие-то действия точно так же, как и другие методы, а именно, он преобразует некоторые данные в int. Однако для того, чтобы использовать этот метод, необходимо указать, что представляют собой значимые данные. Мы делаем это путем передачи параметра (или аргумента). Вот для чего в основном используются аргументы методов — метод берет данные, передаваемые ему в качестве аргументов, и выполняет над ними действия.
    Читать продолжение записи »

  • Множественное приведение типов.

    Написано 10.05.2010 21:47 devalmor Нет комментариев

    Одна из ситуаций, которую необходимо отслеживать при определении приведений типов, заключается в том, что если не будет существовать прямого приведения типов для выполнения требуемого преобразования, компилятор С# попытается найти способ совмещения нескольких приведений. Например, обращаясь к структуре Currency, предположим, что компилятор встречает такие строки кода:

    Curency Balance = new Currency(10, 50);
    long Amount = (long)Balance;
    double AmountD = Balance;

    Читать продолжение записи »


Стр. 1 из 3312345678910»...Конец