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


дополнительные ограничения



Download 6,27 Mb.
Pdf ko'rish
bet235/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   231   232   233   234   235   236   237   238   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

дополнительные ограничения
Для параметра-типа могут быть заданы нуль или более дополнительных ограниче-
ний. При задании ограничения интерфейсного типа вы гарантируете компилятору, 
что указанный аргумент-тип будет определять тип, реализующий этот интерфейс. 
А так как можно задать несколько интерфейсных ограничений, в аргументе типа 
должен указываться тип, реализующий все интерфейсные ограничения (и все 
основные ограничения, если они заданы). Подробнее об интерфейсных ограниче-
ниях см. главу 13.
Другой тип дополнительных ограничений называют 
ограничением параметра-
типа 
(type parameter constraint). Оно используется гораздо реже, чем интерфейсные 
ограничения интерфейса, и позволяет обобщенному типу или методу указать, что 
аргументы-типы должны быть связаны определенными отношениями. К параметру-
типу может быть применено нуль и более ограничений. В следующем обобщенном 
методе продемонстрировано использование ограничения параметра-типа:
private static List ConvertIList(IList list)
where T : TBase {
List baseList = new List(list.Count);
for (Int32 index = 0; index < list.Count; index++) {
baseList.Add(list[index]);
}
return baseList;
}
В методе 
ConvertIList
определены два параметра-типа, из которых параметр 
T
ограничен параметром типа 
TBase
. Это значит, что какой бы аргумент-тип ни был 
задан для 
T
, он должен быть совместим с аргументом-типом, заданным для 
TBase

В следующем методе показаны допустимые и недопустимые вызовы 
ConvertIList
:
private static void CallingConvertIList() {
// Создает и инициализирует тип List (реализующий IList)
IList ls = new List();
ls.Add("A String");
// Преобразует IList в IList
IList lo = ConvertIList(ls);
// Преобразует IList в IList
IList lc = ConvertIList(ls);
// Преобразует IList в IList>
IList> lcs =
ConvertIList>(ls);
// Преобразует IList в IList
IList ls2 = ConvertIList(ls);
продолжение



328

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   231   232   233   234   235   236   237   238   ...   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