Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet243/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   239   240   241   242   243   244   245   246   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Определение интерфейсов
Как упоминалось ранее, интерфейс представляет собой именованный набор сигнатур 
методов. Обратите внимание, что в интерфейсах можно также определять события, 
свойства — без параметров или с ними (последние в C# называют индексаторами), 
поскольку все это просто упрощенные средства синтаксиса, которые в конечном 
итоге все равно соответствуют методам. Однако в интерфейсе нельзя определять 
ни конструкторы, ни экземплярные поля.
Хотя CLR допускает наличие в интерфейсах статических методов, статических 
полей и конструкторов, а также констант, CLS-совместимый интерфейс не может 
иметь подобных статических членов, поскольку некоторые языки не поддерживают 
их определение или обращение к ним. C# не позволяет определять в интерфейсе 
статические члены.
В C# для определения интерфейса, назначения ему имени и набора сигнатур 
экземплярных методов используется ключевое слово 
interface
. Вот определения 
некоторых интерфейсов из библиотеки классов Framework Class Library:
public interface IDisposable {
void Dispose();
}
public interface IEnumerable {
IEnumerator GetEnumerator();
}
public interface IEnumerable : IEnumerable {


335
Наследование.интерфейсов
IEnumerator GetEnumerator();
}
public interface ICollection : IEnumerable, IEnumerable {
void Add(T item);
void Clear();
Boolean Contains(T item);
void CopyTo(T[] array, Int32 arrayIndex);
Boolean Remove(T item);
Int32 Count { get; } // Свойство только для чтения
Boolean IsReadOnly { get; } // Свойство только для чтения
}
С точки зрения CLR, определение интерфейса — почти то же, что и определение 
типа. То есть CLR определяет внутреннюю структуру данных для объекта интер-
фейсного типа, а для обращения к различным членам интерфейса может использо-
вать отражение. Как и типы, интерфейс может определяться на уровне файлов или 
быть вложенным в другой тип. При определении интерфейсного типа можно указать 
требуемую область видимости и доступа (
public

protected

internal
и т. п.).
В соответствии с соглашением имена интерфейсных типов начинаются с про-
писной буквы 
I
, что облегчает их поиск в исходном коде. CLR поддерживает 
обобщенные интерфейсы (как показано в некоторых предыдущих примерах) и ин-
терфейсные методы. В этой главе я лишь слегка касаюсь некоторых возможностей 
обобщенных интерфейсов, детали см. в главе 12.
Определение интерфейса может «наследовать» другие интерфейсы. Однако сло-
во «наследовать» не совсем точное, поскольку в интерфейсах наследование работает 
иначе, чем в классах. Я предпочитаю рассматривать наследование интерфейсов как 
включение контрактов других интерфейсов. Например, определение интерфейса 
TCollection
включает контракт интерфейсов 
TEnumerable
и 
IEnumerable

Это означает следующее:
‰
любой класс, наследующий интерфейс 
ICollection
, должен реализовать 
все методы, определенные в интерфейсах 
ICollection

IEnumerable
и 
IEnumerable
;
‰
любой код, ожидающий объект, тип которого реализует интерфейс 
ICollection

может быть уверен в том, что тип объекта также реализует методы интерфейсов 
IEnumerable
и 
IEnumerable
.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   239   240   241   242   243   244   245   246   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish