Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 27

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 21 22 23 24 25 26 < 27 > 28 29 30 31 32 33 .. 320 >> Следующая

// Определяем структуру С#
struct Baby
{
Il В структуре ногут быть поля: public string name;
Il В структуре ножно определить конструкторы (но только с параметрами}: public Baby (String name) (this,name = name; )
Il В структурах ногут быть определены методы: public void CryO
{ Console.WriteLine ("Waaaaaaaaaaah!11"): }
public DOOl IsSpleepingC) { return false; } public bool IsChangedO { return false; }
}
А вот наша структура в действии: // Добро пожаловать в пир малютки Макса!
Baby barnaBaby = new Baby ("Max"):
Console.WrlteLine ("Changed?: {O)", barnaBaby.IsChangedO .ToStringC)):
Console.WriteLine ("Sleeping?: (0)". barnaBaby.IsSleepingO.ToStringO);
Il А теперь Макс покажет нан свою подлинную сущность: for{int 1-0: К10О00: 1++) barnaBaby. СгуО:
Все структуры произведены от единого базового класса
System. VaI ueType. Этот базовый класс определяет структуру как тип данных для работы только со значениями, но не с ссылками. В структуре может быть любое количество интерфейсов. Однако структуры не могут быть унаследованы от остальных типов данных и они всегда являются «закрытыми» — то есть они не могут выступать в качестве базовых для целей наследования.
Интерфейсы CTS
Интерфейсы (interfaces) - это просто наборы абстрактных методов, свойств и определений событий. В отличие от классической технологии СОМ, интерфейсы .NET не являются производными от единого общего интерфейса, каким в мире СОМ был интерфейс IUnknown. В интерфейсах самих по себе смысла не очень много. Однако если мы знаем, что какой-либо класс реализует известный нам интерфейс,
46 Глава 1 • Философия .NET
мы вправе требовать от этого класса определенной функциональности. При создании своего собственного интерфейса на .NET-совместимом языке программирования вы можете произвести этот интерфейс сразу от нескольких базовых интерфейсов. Подробнее про использование интерфейсов в программах на С# будет рассказано в главе 6.
Члены типов CTS
Как мы уже в классах и структурах может быть любое количество чле-
нов. Член (member) - это либо метод, либо свойство, либо поле, либо событие. Подробнее про члены типов в мире .NET будет рассказано в нескольких ближайших главах. Однако нам сейчас важно отметить, что для любого члена в .N ІГГ существует набор характеристик.
Например, любой член в .NET характеризуется своей областью видимости (public, private, protected и т.д.). Член можно объявить как абстрактный, чтобы воспользоваться возможностями полиморфизма при работе с производными классами. Члены могут быть статическими (static, такие члены могут совместно использоваться всеми объектами данного класса) и обычными — принадлежащими только одному объекту данного класса.
Перечисления CTS
Перечисление (enumeration) — это удобная программная конструкция, которая позволяет вам объединять пары имя — значение под указанным вами именем перечисления. Предположим, что вы создаете компьютерную игрушку, в которой играющий
сможет выбирать из трех типов персонажей - волшебника (Wizard), воина (Fighter) иливора (Thief). В этой ситуации очень удобно будет воспользоваться перечислением:
// Перечисление С#:
enum PlayerType
{ Wizard=lCO. Fight.e.'-?00. Thief-300 };
В CTS все перечисления являются производными от единственного базового класса System, Enum. Как мы убедимся в будущем, этот базовый класс содержит множество полезных членов, которые помогут нам в извлечении (и выполнении прочих операций) с парами имя — значение.
Делегаты CTS
Делегаты (delegates) — в мире .NET это безопасный для типов эквивалент указателя 'на функцию в С. Однако между ними есть и существенное отличие. Делегат .NET -это уже не просто адрес в оперативной памяти, а класс, производный от базового класса MulticastDelegate. Делегаты очень полезны в тех ситуациях, когда вам нужно, чтобы одна сущность передала вызов другой сущности. Делегаты — это краеугольный камень в технологии обработки событий .NET (об этом - в главе 5).
Встроенные типы данных CTS
Конечно же, в предусмотрен богатый набор встроенных типов данных. Помимо всего прочего, этот набор еще и един для всех языков программирования
Основы CLS 47
.КЕТ. Названия типов данных в языках .NJiT могут выглядеть по-разному, но эти названия — всего лишь псевдонимы для встроенных системных типов данных .NET, определенных в библиотеке базовых типов. Перечень встроенных типов данных .NET представлен в табл. 1.2,
Таблица 1.2. Встроенные типы данных CTS
!Встроенный тип данных .NET Название в Visual Basic.NET Название вС# Название в Managed C++
System. Byte Byte byte char
System.SByte He поддерживается sbyte signed char
System. !nt 6 Short short short
System. Integer int int или long
System. Inb54 Long long _int64
System. Ulntie He поддерживается ushort unsigned short
System. Не поддерживается uint unsigned int или unsigned long
System.UInt64 He ulong unsigned _int64
System.Stngle Single float float
System. Double Double double double
System.Object Object object Object*
System. Char Char char _wchar_t
System.String String string String*
Предыдущая << 1 .. 21 22 23 24 25 26 < 27 > 28 29 30 31 32 33 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100