<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Программирование на Си - C-sharp &#187; Class</title>
	<atom:link href="http://www.c-help.net/tag/class/feed" rel="self" type="application/rss+xml" />
	<link>http://www.c-help.net</link>
	<description></description>
	<lastBuildDate>Fri, 20 Jun 2008 19:02:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Абстрактный класс Figure</title>
		<link>http://www.c-help.net/188.html</link>
		<comments>http://www.c-help.net/188.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:58:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[brush]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Color]]></category>
		<category><![CDATA[Figure]]></category>
		<category><![CDATA[ForestGreen]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[namespace]]></category>
		<category><![CDATA[Rectangle]]></category>
		<category><![CDATA[Region]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[Shapes]]></category>
		<category><![CDATA[Show]]></category>
		<category><![CDATA[summary]]></category>
		<category><![CDATA[System]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=188</guid>
		<description><![CDATA[





Абстрактный класс Figure
Приведем код класса:
using System;
using System.Drawing;
namespace Shapes
{
/// &#60;summary&#62;
/// Figure &#8211; это абстрактный класс; прародитель семейства 
/// классов геометрических фигур. Все фигуры имеют:
/// центр &#8211; center, масштаб &#8211; scale. статус
/// перетаскивания &#8211; dragged center &#8211; объект встроенного
/// класса (структуры) Point. Этот объект задает характерную
/// точку фигуры &#8211; чаще всего ее центр (тяжести)
/// scale задает масштаб [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/188.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ограниченная универсальность</title>
		<link>http://www.c-help.net/179.html</link>
		<comments>http://www.c-help.net/179.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:49:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[findstart]]></category>
		<category><![CDATA[IComparable]]></category>
		<category><![CDATA[INumeric]]></category>
		<category><![CDATA[OneLinkList]]></category>
		<category><![CDATA[PrintPerson]]></category>
		<category><![CDATA[sum]]></category>
		<category><![CDATA[T Sub]]></category>
		<category><![CDATA[WriteLine]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=179</guid>
		<description><![CDATA[





Ограниченная универсальность
Хорошо, когда есть свобода. Еще лучше, когда свобода ограничена. Аналогичная ситуация имеет место и с универсальностью. Универсальность следует ограничивать. На типы универсального класса, являющиеся его параметрами, следует накладывать ограничения. Звучит парадоксально, но, наложив ограничения на типы, программист получает гораздо большую свободу в работе с объектами этих типов.
Если немного подумать, то это совершенно естественная ситуация. [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/179.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Наследование и универсальность</title>
		<link>http://www.c-help.net/178.html</link>
		<comments>http://www.c-help.net/178.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:48:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[GenStack]]></category>
		<category><![CDATA[item]]></category>
		<category><![CDATA[LIFO]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[param]]></category>
		<category><![CDATA[Person]]></category>
		<category><![CDATA[PrintPerson]]></category>
		<category><![CDATA[summary]]></category>
		<category><![CDATA[WriteLine]]></category>

		<guid isPermaLink="false">http://www.c-help.net/178.html</guid>
		<description><![CDATA[





Наследование и универсальность
Необходимость в универсализации возникает с первых шагов программирования. Одна из первых процедур, появляющихся при обучении программированию &#8211; это процедура свопинга:обмен значениями двух переменных одного типа. Выглядит она примерно так:
public void Swap(ref T x1, ref T x2)
{
 T temp;
 temp = x1; x1 = x2; x2 = temp;
}
Если тип T &#8211; это вполне определенный [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/178.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пример &#8220;Списки с событиями&#8221;</title>
		<link>http://www.c-help.net/174.html</link>
		<comments>http://www.c-help.net/174.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:44:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[ChangedEventArgs]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Clear]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[index]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[ListWithChangedEvent]]></category>
		<category><![CDATA[OnChanged]]></category>
		<category><![CDATA[Override]]></category>
		<category><![CDATA[permit]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[sender]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=174</guid>
		<description><![CDATA[





Пример &#8220;Списки с событиями&#8221;
В этом примере строится класс ListWithChangedEvent, являющийся потомком встроенного класса ArrayList, который позволяет работать со списками. В класс добавляется событие Changed, сигнализирующее обо всех изменениях элементов списка. Строятся два класса &#8211; Receiver1 и Receiver2, получающие сообщения. В примере рассматривается взаимодействие нескольких объектов: два объекта посылают сообщения, три &#8211; принимают.
Начнем с объявления делегата:
// [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/174.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Класс sender. Как объявляются события?</title>
		<link>http://www.c-help.net/171.html</link>
		<comments>http://www.c-help.net/171.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:42:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[FireEventHandler]]></category>
		<category><![CDATA[namespace]]></category>
		<category><![CDATA[OnFire]]></category>
		<category><![CDATA[sender]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[TownWithEvents]]></category>
		<category><![CDATA[void]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=171</guid>
		<description><![CDATA[





Класс sender. Как объявляются события?
При проектировании класса с событиями, возможно, самое трудное &#8211; содержательная сторона дела. Какими событиями должен обладать класс, в каких методах и в какой момент зажигать то или иное событие?
Содержательную сторону будем пояснять на содержательных примерах. А сейчас рассмотрим технический вопрос: как объявляются события средствами языка С#? Прежде всего, уточним, что такое [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/171.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Функции высших порядков (II)</title>
		<link>http://www.c-help.net/169.html</link>
		<comments>http://www.c-help.net/169.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:40:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Combination]]></category>
		<category><![CDATA[Combine]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[ICloneable]]></category>
		<category><![CDATA[invocation]]></category>
		<category><![CDATA[ISerializable]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[MethodInfo]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[Target]]></category>
		<category><![CDATA[type]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=169</guid>
		<description><![CDATA[





Функции высших порядков (II)
Заметьте, методы закрыты и, следовательно, недоступны извне. Их четыре, но могло бы быть и больше, при возрастании сложности объекта растет число таких методов. Все методы имеют одну и ту же сигнатуру и удовлетворяют контракту, заданному делегатом, который будет описан чуть позже. Для каждого метода необходимо построить экземпляр делегата, который будет задавать ссылку [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/169.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Структуры</title>
		<link>http://www.c-help.net/162.html</link>
		<comments>http://www.c-help.net/162.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:30:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Abs]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[nod]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[PrintRational]]></category>
		<category><![CDATA[struct]]></category>
		<category><![CDATA[TwoSemantics]]></category>
		<category><![CDATA[void]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=162</guid>
		<description><![CDATA[





Структуры
Рассмотрим теперь более подробно вопросы описания структур, их синтаксиса, семантики и тех особенностей, что отличают их от классов.
Синтаксис структур
Синтаксис объявления структуры аналогичен синтаксису объявления класса:
[атрибуты][модификаторы]struct имя_структуры[:список_интерфейсов]
{тело_структуры}
Какие изменения произошли в синтаксисе в сравнении с синтаксисом класса, описанным в лекции 16? Их немного. Перечислим их:

ключевое слово class изменено на слово struct; 
список родителей, который для классов, наряду [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/162.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Массивы объектов</title>
		<link>http://www.c-help.net/151.html</link>
		<comments>http://www.c-help.net/151.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:19:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[InitAr]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[Length]]></category>
		<category><![CDATA[price]]></category>
		<category><![CDATA[PrintWinner]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[SetVals]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[summary]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[TestWinners]]></category>
		<category><![CDATA[void]]></category>
		<category><![CDATA[Winar]]></category>
		<category><![CDATA[WriteLine]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=151</guid>
		<description><![CDATA[





Массивы объектов
Во всех рассмотренных примерах этой главы нам встречались массивы, элементы которых имели только простые значимые типы. В реальных программах массивы объектов и других ссылочных типов встречаются не менее часто. Каков бы ни был тип элементов, большой разницы при работе с массивами нет. Но один важный нюанс все же есть, и его стоит отметить. Он [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/151.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Рекурсивное решение задачи &#8220;Ханойские башни&#8221;</title>
		<link>http://www.c-help.net/142.html</link>
		<comments>http://www.c-help.net/142.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:11:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[PrintTowers]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Size]]></category>
		<category><![CDATA[summary]]></category>
		<category><![CDATA[TestHanoiTowers]]></category>
		<category><![CDATA[WriteLine]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=142</guid>
		<description><![CDATA[





Рекурсивное решение задачи &#8220;Ханойские башни&#8221;
Рассмотрим известную задачу о конце света &#8211; &#8220;Ханойские башни&#8221;. Ее содержательная постановка такова. В одном из буддийских монастырей монахи уже тысячу лет занимаются перекладыванием колец. Они располагают тремя пирамидами, на которых надеты кольца разных размеров.
В начальном состоянии 64 кольца были надеты на первую пирамиду и упорядочены по размеру. Монахи должны переложить [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/142.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Объявление переменных</title>
		<link>http://www.c-help.net/131.html</link>
		<comments>http://www.c-help.net/131.html#comments</comments>
		<pubDate>Fri, 20 Jun 2008 17:54:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Учебник]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[main]]></category>
		<category><![CDATA[SimpleVars]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Variable]]></category>
		<category><![CDATA[Variables]]></category>
		<category><![CDATA[void]]></category>
		<category><![CDATA[WriteLine]]></category>

		<guid isPermaLink="false">http://www.c-help.net/?p=131</guid>
		<description><![CDATA[





Объявление переменных
В лекции 4 рассматривались типы языка C#. Естественным продолжением этой темы является рассмотрение переменных языка. Переменные и типы &#8211; тесно связанные понятия. С объектной точки зрения переменная &#8211; это экземпляр типа. Скалярную переменную можно рассматривать как сущность, обладающую именем, значением и типом. Имя и тип задаются при объявлении переменной и остаются неизменными на все [...]]]></description>
		<wfw:commentRss>http://www.c-help.net/131.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

