| Клуб программистов Лучшая подборка книг и информации по программированию. |
-
Пример BubbleSorter.
Написано 02.07.2010 21:26 Нет комментариевТеперь мы приведем пример, в котором делегаты чрезвычайно полезны. Напишем класс BubbleSorter. Он реализует статический метод Sort(), который в качестве первого параметра принимает массив объектов и сортирует его в возрастающем порядке. Например, если мы передадим массив int {0. 5, 6, 2,1}, метод отсортирует его так: {0,1. 2, 5, 6}.
Алгоритм пузырьковой сортировки является довольно известным и очень простым (хотя неэффективным) способом сортировки чисел. Он работает, проходя по всему массиву, сравнивая каждую пару чисел и меняя их в случае необходимости, в результате чего большие числа постепенно перемещаются в конец массива. Для сортировки int метод пузырьковой сортировки выглядит так:
Читать продолжение записи » -
Простой пример использования делегатов.
Написано 02.07.2010 21:11 Нет комментариевОпределим класс 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 Нет комментариевДля того чтобы можно было использовать класс в С#, нужно выполнить два действия. Во-первых, необходимо определить класс, т.е. сказать компилятору, какие поля и методы образуют класс. Затем (если только мы не используем статические методы) необходимо создать экземпляр класса, т.е. создать объект этого класса. То же самое справедливо для делегатов. Сначала требуется определить делегатов, которые будут применяться. Определение делегата означает указание компилятору того, какой тип методов будут представлять делегаты этого типа. Затем нужно создать один или несколько экземпляров делегатов.
Синтаксис для определения делегатов выглядит следующим образом: delegate void VoidOperation(uint X);
В данном случае мы определили делегата VoidOperation и указали, что каждый экземпляр этого делегата может содержать сведения о методе, принимающем один параметр uint и возвращающем void. Ключевым моментом является то, что делегаты безопасны по типу. При определении делегата вы должны указать все подробности сигнатуры метода, который он будет представлять.
Читать продолжение записи » -
Делегаты.
Написано 10.05.2010 21:48 Нет комментариевДелегаты лучше всего рассматривать как новый тип объекта в С#, в некотором роде они похожи на классы. Они предназначены для ситуаций, когда требуется передать методы другим методам. Например:
int I = int.Parse (”99″);Здесь вызывается статический метод Parse() из класса System.Int32. Этот метод принимает один параметр — для данного перегруженного варианта — строку. Можно рассматривать ситуацию следующим образом. Метод Parse() производит какие-то действия точно так же, как и другие методы, а именно, он преобразует некоторые данные в int. Однако для того, чтобы использовать этот метод, необходимо указать, что представляют собой значимые данные. Мы делаем это путем передачи параметра (или аргумента). Вот для чего в основном используются аргументы методов — метод берет данные, передаваемые ему в качестве аргументов, и выполняет над ними действия.
Читать продолжение записи » -
Множественное приведение типов.
Написано 10.05.2010 21:47 Нет комментариевОдна из ситуаций, которую необходимо отслеживать при определении приведений типов, заключается в том, что если не будет существовать прямого приведения типов для выполнения требуемого преобразования, компилятор С# попытается найти способ совмещения нескольких приведений. Например, обращаясь к структуре Currency, предположим, что компилятор встречает такие строки кода:
Curency Balance = new Currency(10, 50);
long Amount = (long)Balance;
double AmountD = Balance;



Новые комментарии