Классы с событиями, допустимые в каркасе .Net Framework

Написано admin в 20 Июнь 2008 – 21:43 -

Классы с событиями, допустимые в каркасе .Net Framework

Если создавать повторно используемые компоненты с событиями, работающие не только в проекте C#, то необходимо удовлетворять некоторым ограничениям. Эти требования предъявляются к делегату; они носят, скорее, синтаксический характер, не ограничивая существа дела.

Перечислю эти ограничения:

  • делегат, задающий тип события, должен иметь фиксированную сигнатуру из двух аргументов: delegate <Имя_делегата> (object sender, <Тип_аргументов> args);
  • первый аргумент задает объект sender, создающий сообщение. Второй аргумент args задает остальные аргументы – входные и выходные, – передаваемые обработчику. Тип этого аргумента должен задаваться классом, производным от встроенного в .Net Framework класса EventArgs. Если обработчику никаких дополнительных аргументов не передается, то следует просто указать класс EventArgs, передавая null в качестве фактического аргумента при включении события;
  • рекомендуемое имя делегата – составное, начинающееся именем события, после которого следует слово EventHandler, например, FireEventHandler. Если никаких дополнительных аргументов обработчику не передается, то тогда можно вообще делегата не объявлять, а пользоваться стандартным делегатом с именем EventHandler.

Tags: , , , , , , ,
Находится в Учебник | No Comments »

Класс Math и его функции

Написано admin в 20 Июнь 2008 – 21:05 -

Класс Math и его функции

Кроме переменных и констант, первичным материалом для построения выражений являются функции. Большинство их в проекте будут созданы самим программистом, но не обойтись и без встроенных функций. Умение работать в среде Visual Studio .Net предполагает знание встроенных возможностей этой среды, знание возможностей каркаса Framework .Net, пространств имен, доступных при программировании на языке C#, а также соответствующих встроенных классов и функций этих классов. Продолжим знакомство с возможностями, предоставляемыми пространством имен System. Мы уже познакомились с классом Convert этого пространства и частично с классом Console. Давайте рассмотрим еще один класс – класс Math, содержащий стандартные математические функции, без которых трудно обойтись при построении многих выражений. Этот класс содержит два статических поля, задающих константы E и PI, а также 23 статических метода. Методы задают:

  • тригонометрические функции – Sin, Cos, Tan;
  • обратные тригонометрические функции – ASin, ACos, ATan, ATan2 (sinx, cosx);
  • гиперболические функции – Tanh, Sinh, Cosh;
  • экспоненту и логарифмические функции – Exp, Log, Log10;
  • модуль, корень, знак – Abs, Sqrt, Sign;
  • функции округления – Ceiling, Floor, Round;
  • минимум, максимум, степень, остаток – Min, Max, Pow, IEEEReminder. Read more »

Tags: , , , , , , , , , , , , ,
Находится в Учебник | No Comments »

Система типов

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

Система типов

Давайте рассмотрим, как устроена система типов в языке C#, но вначале для сравнения приведу классификацию типов в стандарте языка C++.

Стандарт языка C++ включает следующий набор фундаментальных типов.

  1. Логический тип (bool).
  2. Символьный тип (char).
  3. Целые типы. Целые типы могут быть одного из трех размеров – short, int, long, сопровождаемые описателем signed или unsigned, который указывает, как интерпретируется значение, – со знаком или без оного.
  4. Типы с плавающей точкой. Эти типы также могут быть одного из трех размеров – float, double, long double.

Кроме того, в языке есть

  1. Тип void, используемый для указания на отсутствие информации.

Язык позволяет конструировать типы.

  1. Указатели (например, int* – типизированный указатель на переменную типа int).
  2. Ссылки (например, double& – типизированная ссылка на переменную типа double).
  3. Массивы (например, char[] – массив элементов типа char).

Язык позволяет конструировать пользовательские типы

  1. Перечислимые типы (enum) для представления значений из конкретного множества.
  2. Структуры (struct).
  3. Классы. Read more »

Tags: , , , , , , , , , ,
Находится в Учебник | No Comments »

Общий взгляд

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

Общий взгляд

Знакомство с новым языком программирования разумно начинать с изучения системы типов этого языка. Как в нем устроена система типов данных? Какие есть простые типы, как создаются сложные, структурные типы, как определяются собственные типы, динамические типы, как определяются классы?

В первых языках программирования понятие класса отсутствовало – рассматривались только типы данных. При определении типа явно задавалось только множество возможных значений, которые могут принимать переменные этого типа. Например, тип integer задает целые числа в некотором диапазоне. Неявно с типом всегда связывался и набор разрешенных операций. В типизированных языках, к которым относится большинство языков программирования, понятие переменной естественным образом связывалось с типом. Если есть тип Т и переменная x типа Т, то это означало, что переменная может принимать значения из множества, заданного типом, и к ней применимы операции, разрешенные типом. Read more »


Tags: , , , , , , ,
Находится в Учебник | No Comments »

Создание C#

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

Создание C#

Язык C# является наиболее известной новинкой в области создания языков программирования. В отличие от 60-х годов XX века – периода бурного языкотворчества – в нынешнее время языки создаются крайне редко. За последние 15 лет большое влияние на теорию и практику программирования оказали лишь два языка: Eiffel, лучший, по моему мнению, объектно-ориентированный язык, и Java, ставший популярным во многом благодаря технологии его использования в Интернете и появления такого понятия как виртуальная Java-машина. Чтобы новый язык получил признание, он должен действительно обладать принципиально новыми качествами. Языку C# повезло с родителями. Явившись на свет в недрах Microsoft, будучи наследником C++, он с первых своих шагов получил мощную поддержку. Однако этого явно недостаточно для настоящего признания достоинств языка. Попробуем разобраться, имеет ли он большое будущее? Read more »


Tags: , , , , , , ,
Находится в Учебник | No Comments »