Урок 32. Делегаты

Написано admin в 14 Июнь 2008 – 16:16 -


Урок 32. Делегаты

Сначала пара слов о том, что такое делегаты. В языке программирования могут быть переменные, содержащие значения целого или вещественного типов. С такими типами все вы хорошо знакомы. Так вот, в первом приближении делегаты – это тоже некоторый тип данных. Что же за тип может хранится в делегатах? В делегатах могут хранится функции (вернее указатели на функции). Т. е. переменной типа делегат можно сначала присвоить одну функцию, поработать с ней, а затем присвоить другую функцию. Это все в первом приближении. Теперь несколько подробностей. Во-первых, делегаты бывают разных типов. Тип делегата определяется типов и количеством параметов и типом возвращаемого значения. Это значит, что если, например, делегат типа void и у него только один параметр типа int, то в такой делегат мы можем записать только функцию типа void и с одним единственым параметроам типа int. Во-вторых, делегаты, в отличие от указателей на функции языка C++, предаставляют из себя безопасные типы данных.

Вот пример делегата:

Read more »


Tags: , , , , , , ,
Находится в Уроки C# | No Comments »

Урок 29. Пример передачи по ссылке

Написано admin в 14 Июнь 2008 – 16:14 -


Урок 29. Пример передачи по ссылке

На этом уроке мы напишем функцию для решения квадратного уравнения. Эта функция будет передавать корни уравнения через ссылку – т. е. через свои два параметра. Всего же параметров будет пять – остальные три – это коэффициетны a, b, и c. Тип у функции будет int – она будет возвращать фактическое число корней (т. е. 0, 1 или 2).

Вот текст:

Read more »


Tags: , , , , , ,
Находится в Уроки C# | No Comments »

Урок 16. Перегрузка унарных операторов

Написано admin в 14 Июнь 2008 – 16:04 -


Урок 16. Перегрузка унарных операторов

Унарные операторы – это те, которые имеют только один операнд (параметр). Типичные примеры унарных операторов – это унарный минус (меняющий знак на противоположный) и оператор инкремента ++.

Рассмотрим перегрузку унарных операторов на примере рассмотренного на прошлом уроке класса Vector. А именно, добавим в наш класс унарный минус, который будет менять вектор с координатами x и y на вектор с координатами -x и -y. Для этого добавьте в наш класс Vector следующие строки:

        public static Vector operator -(Vector v)
        {
            Vector res = new Vector(-v.x, -v.y);
            return res;
        }

Read more »


Tags: , , , , , , ,
Находится в Уроки C# | No Comments »

C# — язык программирования, сочетающий объектно-ориентированные и аспектно-ориентированные концепции. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к С++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).