interface
.
По соглашению имена всех интерфейсов .NET Core начинаются с прописной буквы I
, как показано в следующем примере:
// Тип интерфейса C# обычно объявляется как
// public, чтобы позволить типам из других
// сборок реализовывать его поведение.
public interface IDraw
{
void Draw;
}
Сами по себе интерфейсы приносят не особо много пользы. Тем не менее, когда класс или структура реализует выбранный интерфейс уникальным об разом, появляется возможность получать доступ к предоставленной функциональности, используя ссылку на этот интерфейс в полиморфной манере. Программирование на основе интерфейсов подробно рассматривается в главе 8.
Типы структур CTS
Концепция struct
, например:
// Тип структуры С #.
struct Point
{
// Структуры могут содержать поля.
public int xPos, yPos;
// Структуры могут содержать параметризованные конструкторы.
public Point(int х, int у)
{ xPos = x; yPos = y;}
// В структурах могут определяться методы.
public void PrintPosition
{
Console.WriteLine("({0}, {!})", xPos, yPos);
}
}
Типы перечислений CTS
Wizard
(маг), Fighter
(воин) или Thief
(вор). Вместо отслеживания простых числовых значений, представляющих каждую категорию, можно было бы создать строго типизированное перечисление, используя ключевое слово enum
:
// Тип перечисления C#.
enum CharacterType
{
Wizard = 100,
Fighter = 200,
Thief = 300
}
По умолчанию для хранения каждого элемента выделяется блок памяти, соответствующий 32-битному целому, однако при необходимости (скажем, при программировании для устройств с малым объемом памяти наподобие мобильных устройств) область хранения можно изменить. Кроме того, спецификация CTS требует, чтобы перечислимые типы были производными от общего базового класса System.Enum
. Как будет показано в главе 4, в этом базовом классе определено несколько интересных членов, которые позволяют извлекать, манипулировать и преобразовывать лежащие в основе пары "имя-значение" программным образом.
Типы делегатов CTS
System.MulticastDelegate
, а не простой указатель на низкоуровневый адрес в памяти. В языке C# делегаты объявляются с помощью ключевого слова delegate
:
// Этот тип делегата C# может "указывать" на любой метод,
// возвращающий тип int и принимающий два значения int.
delegate int BinaryOp(int x, int y);
Делегаты критически важны, когда объект необходимо наделить возможностью перенаправления вызова другому объекту, и они формируют основу архитектуры событий .NET Core. Как будет показано в главах 12 и 14, делегаты обладают внутренней поддержкой группового вызова (т.е. перенаправления запроса множеству получателей) и асинхронного вызова методов (т.е. вызова методов во вторичном потоке).
Члены типов CTS
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT