Модификаторы доступа |
107 |
1 08 |
Карманный справочник по языку С# 8.0 |
Стандартные методы интерфейсов (С# 8)
|
8e0в## |
|
yаСe.Р #.le0 |
eфв)к#г.# |
р#ч)8Сrlи вl).р)0l |
||||||
.Р |
0e)С#С) |
# |
рeС)re |
#.e#чrС)leСи.nк |
рСr0e)С#С) |
## |
|||||
|
|
|
|
|
|
|
|
иe и . nн d. нe. |
.d d в |
||
|
)y)r8#Ск#г.#вlи |
d#СeС.) |
y# |
р.)e#чм#р#к# |
р#ч)8#l аСe. |
||||||
y#.le0 |
eфвР |
#d0eрeСe..#кР 8 y)y#ф l#d#dРСr0.#ф ч#ч С##мeye |
|||||||||
.# |
.e .)0Р |
#lи |
0)ч#мР |
|
d#le. #)Си.ln#вrа 0e)С#С) |
#ф |
|||||
|
l).р)0l.ne |
0e)С#С) |
## 8вe |
рr8)Сr |
lвr8.nк# |
l)y аl# |
|||||
eвС# 8 yС)ввe 0e)С#СР |
нeк |
я |
и #lвРlв |
8Рel#d0eрeСe.#e |
|||||||
кel#р) |
я |
|
l# 8nС8)lи e |
d#СРа#lвrl#Сиy##р.#к |
вd#в# |
||||||
ч#к |
аe0eС#.le0 eфв |
|
|
|
|
|
|
и .
. . Г |
к#ao###(з na#lгС#nпeгrв(eС е а в д |
|
{ |
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
{t |
|
t |
|
(";)}{t |
|
|
t |
|
|
|
|
|
|
|||
|
)()(). |
|
)( |
()s. |
{(";)} |
= |
'"' ; |
|
|
|
|
|
|
|
|
|
|
||
|
"(-"+2-+,+"') |
"' |
"(T"1("1 '"+1'" |
" |
-() |
) )"++," |
2+" |
||||||||||||
( +)- ( |
" ","(-"),+"'") |
)".'" |
|
|
"-."('"( |
+." |
|
|
|
|
|
||||||||
|
())"" |
|
="",(= |
= |
s |
=;= |
|
; = |
|
s |
|
|
|
|
|
|
|||
|
".'" |
|
11"( |
|
" |
("'","'"" |
+","1"1- ( |
" |
","(-")+,+"'+ "' |
|
|||||||||
|
"(T"1(")"+"T"-" |
"(+"( |
+ |
{" "-"1-"- |
t |
|
=3 t |
3х=3 |
|||||||||||
"+" |
= |
t |
|
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"++ -="))++("1{) " )(".'")+ |
|
=")(" |
"')у , |
"("" |
1" |
(= |
||||||||||||
|
1+")("';")+ |
"' |
"(T"1("1 )("++()" (" 1". |
")+ |
")("+"+"'"" |
||||||||||||||
")" {=t{ |
|
{О=у'" |
'" |
|
= |
o= |
О= |
|
|
|
|
|
|
|
|
|
|||
*+.+1,.-+-;;, |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
"(","(+"'"" |
|
|
()";""+2')1 |
|
" ='","'"+ -" "()1 |
|||||||||||||
)"=1"++" +-"=)1" |
2r(+) |
+")"'"1"'')= |
|
,"(+"1)= |
-"'( |
"' |
= |
||||||||||||
|
")(")"( |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;> |
|
|
; |
|
; |
; |
|
|
|
|
|
|
|
|
|
|
|
"''"" |
"(","(+"'"")".'" |
)(")"'+ |
2 |
(+"++. |
") ",("=") |
|
||||||||||||
|
|
; |
; = |
|
|
=; == ; |
; ; = ; |
|
|
|
|
|
; |
|
|||||
|
".+)1 |
,+"' |
"(","(+"'"+")"" |
+"." |
"" 1 "r""('"1" |
;"+" |
|
||||||||||||
,"(+"''"" |
|
='","'"" |
|
"+)"+,"'". |
|
+"." |
"" 1 "('"1" |
='","'"+ |
|||||||||||
" |
'"(+ |
(+- ")+ |
" ху+"'") |
=";","M+"'"+)("(1""1". |
(+ -"'= |
||||||||||||||
( |
"' ) |
|
C |
|
C1 |
|
;+F"=- |
|
|
"'"+1+ |
".'" |
+-"=" +(+2 |
"1 |
||||||
;"+","(+"'')1 |
|
") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
;> |
|
|
|
; |
|
" |
|
; |
; |
|
|
|
|
|
|
|
) , |
(C="( + |
S S = |
нн |
н |
|
{
,("( |
|
; |
( |
|
,((, |
|
"( |
|
( |
) |
|||
{8( |
1,3( |
|
{8( |
|
1, 3( |
|
(. |
((((1 |
|
|
|
((((1 |
|
{, |
|
|
{8( |
1,3( |
(. |
((((1 |
Операции |
над перечислениями |
|
|
|
fуб з |
о кабГypг |
ffзкдкГгб Ск |
Гд к |
абГбд рf |
лбypfеСf |
|
|
|
|
|
t |
t", |
|
|
+= - |
)( |
") |
|
|
==d |
; е |
сс |
=d |
|
|
= n; |
|
|
|
|
е |
О |
h=h |
Ое= n |
|
|
|
h=h |
Ое=>е |
;") |
'+ : ==х |
)".'" |
(+"+ .=") ",.",") |
|
h О=h = >; |
=h |
|
|
|
О=h |
CО |
|
|
|
О=h |
CО |
|
|
|
еn |
= О=h = |
|
|
|
е>= |
О=h |
|
|
|
НА ЗАМЕТКУ!
|
А |
КЕ! |
!МАЕ! !! |
|
К! |
!З !Е! К |
З |
! |
А |
!А |
||||
Н |
!К!!Е!! |
КЕ! |
Е! |
|
! |
! З Н! ! |
К! |
!! |
|
! |
А |
|||
К! М! Е! |
! |
! |
!К! К !М К Н! |
Е!Е! ! |
З |
|
АЕ ! |
|||||||
Е!Н !! |
К!! |
! |
Е ! |
А |
АЕА |
НА |
!К |
|
НА |
!АЗК |
||||
|
! |
|
ЕА А! |
!! |
!ЕЕ |
З ! Н! |
|
А! |
!М! |
|
!З |
|||
|
К! ЕАЕ!! |
! |
!ЕЕ М |
З ! |
!МК |
! ! |
!МЕА М!З |
! |
!З |
|||||
Н! |
|
! |
!ЗН |
|
Н |
!М! Н |
!К!!Е К |
А |
! |
! !Н |
||||
|
|
ЕА З |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
А Е!К |
Е Е |
(посредством синтаксиса с угловыми скобками). Метод Рор ( ) в нашем обобщенном стеке просто потребляет существующий па раметр типа Т и не классифицируется как обобщенный.
Методы и типы - единственные конструкции, в которых мо гут вводиться параметры типа. Свойства, индексаторы, события, поля, конструкторы, операции и т.д. не могут объявлять парамет ры типа, хотя способны пользоваться любыми параметрами типа, которые уже объявлены во включающем типе. В примере с обоб щенным стеком можно было бы написать индексатор, который возвращает обобщенный элемент:
puЬlic Т this [ int index ] { get { return data [ index ] ; } }
Аналогично конструкторы также могут пользоваться существу ющими параметрами типа, но не yyцTLlhих.
чtlcицiящiтп.т uiд.iипдщтп
Параметры типа могут быть введены в объявлениях клас сов, структур, интерфейсов, делегатов (см. раздел "Делегаты" на стр. 1 25) и методов. Можно указывать множество параметров типа, разделяя их запятыми:
class Dictionary<TKey, TValue> { . . . }
Вот как создать его экземпляр:
var myDict = new Dictionary<int , string> ( ) ;
Имена обобщенных типов и методов могут быть перегружены при условии, что количество параметров типа у них отличается. Например, показанные ниже три имени типов не конфликтуют друг с другом:
class А { ) class А<Т> { }
class A<T l , T2> ( }
НА ЗАМ ЕТКУ!
По соглашению обобщенные типы и методы с uщeхGlбuхш ным параметром типа обычно именуют его как Т, если назначение параметра очевидно. В случае хuGFцы Fecпа раметров типа каждый такой параметр имеет более описа тельное имя (с префиксом Т).
н |
юъ |
ыые |
.{ { |
a, |
|
Операция typeof и несвязанные
обобщенные типы
|
|
oН |
eад Нгбo ypeypfoдГи |
гГгю |
oнoн |
eypypгюГfбoН |
ypeв |
|||||||||||
|
eвГН eГoypf |
tи |
Нtг яГвд |
ypt |
Гtбeиoабf д ff |
зyptиoНo |
||||||||||||
Н |
eадНгбo ypeypfНдo |
аoщypoв |
вГНe oНtypfe |
|
|
|
|
|||||||||||
|
|
oнoн |
eypypoГцfoбt |
fви |
ямfГe |
тypoиtи oн |
eиГt |
|
||||||||||
|
зfypв |
Нeypypвбoгавoнoа |
иt |
typfypeд вНд |
typypoнoцнo |
eypypoцo |
||||||||||||
Гfбt Н |
дН |
дeГвдбОfаeypeypfeoбe |
t ff |
|
|
|
|
|
||||||||||
|
|
|
= "-+)(, |
. |
=.+ |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
" |
)(, |
. |
= > .+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s=s |
= |
|
lh |
|
hl |
|
h |
h х |
|
h |
l=s |
l |
|
|
||
|
|
)"=";"3 |
|
|
=)"/'" |
("+/" "))"=-;"("(- |
+=* |
+";"'"* |
||||||||||
;"+=)("." |
(")" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
= l |
|
s |
|
l |
|
l |
|
|
|
|
|
|
|
|
|
"=""(+=)("." |
(")" |
"o"()+ |
;"+=""()* |
(" |
(=")* |
())"='"'" |
*> |
|||||||||||
|
|
|
== |
|
s |
|
у |
|
|
l |
|
l |
|
hs |
|
|
|
|
Стандартное обобщенное значение |
|
|
|
|
|
|||||||||||||
|
|
ямeНoeв |
oНo |
|
|
|
аoщeГ |
бОfаeypдГтвд з |
д бo |
|
||||||||
мeypfдвГtypзt |
Гypo |
yptoмeypfoнoдн |
|
eypypoбцto |
tаeГ |
tГfбt |
||||||||||||
|
Гtypзt |
Гypгаyptмeypfeз адввг |
oмypoцoГfбt дН |
дeГвд |
|
t |
||||||||||||
|
|
д f пуttмeуfд |
eп t |
o f oНo oу |
eуfдo eН |
Гoа |
||||||||||||
|
f |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= |
|
|
|
|
h |
|
l |
|
|
|
|
|
|
|
|
,"",- |
. |
i),,* |
". =+= |
|
|
|
|
|
|
|
|
|
||||
|
|
"+"'"* ) |
("()"" |
T |
S"( |
|
)"'( (")" |
)"/'" |
'" |
+";)("(- |
||||||||
( |
)= |
"*2i+" |
|
+"+"))"=*("= |
|
))")"+"' |
|
"." |
()(")(" |
)" )")("*= |
||||||||
("=-'" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
,"",- |
+=х i),,*) |
" = |
|
|
|
|
|
|
|
|
|
|
|
1 20 |
Карманный справочник по языку С# 8.0 |
Огр а н и ч ения обобщен и й
|
Х каХО |
ЗПн |
З ЗаВв |
|
вн |
З аХщВв |
гв |
ЗаВ |
ВПО |
га |
вн |
||
Ха |
|
вХ г |
|
Зв |
В ХиЗвю ХОВВ М |
В н |
н ПгВЗ |
каВПвгвн |
З о |
З |
|||
ЗаВв |
квн |
З аLщПХ |
наВПнвю |
|
к |
ВМвик в иLМВаю |
|||||||
инеLи |
L |
КЗПн |
ВПн |
|
|
|
|
|
|
|
|
||
|
|
МО |
|
|
|
|
L |
|
|
|
|
|
|
|
|
|
|
|
у L |
|
|
|
|
|
|
||
|
|
МО |
|
|
у L |
|
|
|
|
|
|
||
|
|
МО |
|
|
|
и и |
|
|
|
|
|
|
|
|
|
() |
|
L у |
|
|
|
|
|
|
8 ) |
" . ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
() |
|
|
|
|
|
|
|
|
|
|
|
|
|
() |
|
|
|
( { |
|
|
|
|
|
|
|
|
|
() |
() |
|
|
8 8 |
|
|
|
|
|
|
|
|
|
|
|
8 8 |
|
|
|
|
|
|
|||
|
()(1; |
|
(, |
,(>,((( |
|
|
|
|
.(( ;(. |
|
.( 1 |
||
.>, |
|
1) |
,((>{8(1)1, |
(. |
t)(((( |
|
|
>)>>1().> |
() |
||||
(,; |
> ((()>{(8() |
>).(( |
( |
( |
|
( |
.> |
,((1((.(8);) |
|
||||
t()(.(;t.(( |
|
({,(((,(.((8 |
|
|
|
|
|
|
|
|
|
{ |
{ { |
{ { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{{{ |
3{ {/ |
|
{ |
{3{ |
|
{ |
3 |
3 |
/3{3 |
3{3{ |
{{{ |
|
|
||||
{3 |
{ |
|
{ |
{ |
{3 |
|
/ |
{ |
{ |
|
/ {3 |
3{3{ |
|
|
/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
{3 |
/{{{{3 |
{ |
|
{ |
||||
|
/{ |
3{ |
/ |
{{{{/{ |
{ |
{{{/ |
/ {{{{{ |
|
{{/ |
{ |
{ |
{ |
{ |
{ |
|
|||||
|
|
|
|
|
|
|
|
|
{ |
|
{3 |
/{{{{3 |
{ |
|
|
{ |
/{ |
3{ |
||
{3{{ |
|
/ |
{ |
{{{ |
|
|
{ |
3{ |
3 |
{ { |
|
/3 {{{ |
3{ |
/ |
|
/{ |
|
|||
|
|
|
{3{ {{{ |
{{{{3 |
{{ |
|
|
{ |
{3 |
{/{3/ {{ |
3{ |
{ |
|
|
||||||
|
{ |
{{{{ |
{ |
{ |
3{ |
3 |
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
{ |
{ |
/{ |
|
|
|
3{ |
|
{{ |
{/ |
{ |
{ |
|
/{ |
|
|
|
/{{{ 3{ |
|
{3 |
/ |
{ |
{ |
{ |
||
|
|
|
|
|
|
|
|
|
|
|
{ |
3 |
{/{33{ |
{ |
{/ |
|
3{{ |
3 |
||
/ |
{{{ |
|
3{ |
|
|
|
|
|
/{ |
3{ |
|
{/{ |
|
{ |
|
/{ |
{{ |
3 |
||
{ |
|
{ |
{ { |
|
|
{// |
/{{ |
{3 |
{ |
{ |
{/ {3 |
|
{33 |
{{ |
{/ { |
|
|
|||
|
/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
{3 |
3 |
|
/ |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
{ |
{ {{ |
{{ |
{ |
{ |
{{ |
|
3 / ( }{ |
3 ({ |
{}/{ |
{{{ |
{{ |
{}{ |
{ {}{ { |
{{{ |
{} |
{}{ |
{} |
|
|
|
|
|
|
|
( |
НА ЗАМЕТКУ!
|
|
АЕВЗ!ВДхДАУхд ! |
ТАДЕЗВЕВЗ!ВДхДАУЕд |
|
УЗАиДН! |
ТАДп |
||||||||||||
н!Кн!!т |
|
АЕ!ЕВн!С |
З!иВ |
оВС Е АУДАЕ! !к |
ЕЕ!Т!Д!С |
|
Е |
СаНТ |
||||||||||
|
|
аВТЗлФВЗВУд Е ЕАИ |
ФхАЭН КАаЕАЗ!хд |
АЭАЭо!ДДНИ |
|
!Д |
||||||||||||
|
Е!Зц!еУВИ |
! АЭАЭо!Д!СИ |
|
ЕФВУЕДАУЕ! |
АКЗ!Т!З!ДДНИ |
|
Е |
|||||||||||
|
|
|
хВТ!И |
ТВТ |
|
|
|
ы |
|
ЗВЭАхВЕд |
ц |
|
|
|
т |
|||
|
|
|
|
ц |
|
|
цНИАи!х! |
!аЕЗ!Фд ЕН |
АТУ !а |
ТАЕВЗ!п |
||||||||
|
ВДЕДАУЕ! ! ТАДЕЗВЕВЗ!ВДЕДАУх! |
Ви! АУАЭА Д! ЕД!ТВС |
ЕА |
|||||||||||||||
|
ЕУ! |
!к |
Т!ЕВЗ!т |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
З! |
КАЗВеВС ФЕАЕ!К |
|
ИАи!Е |
ЭНхд КЗ!АЭЗВаАЕВД |
|
Е |
|
х!К |
||||||||
!И!!Е ТАЕВЗ!ВДхДНе |
КВЗВИ!ЕЗ |
Е!КВ |
!УЗ! |
|
|
КА |
ТВ!хУС |
КЗ!АЭ |
||||||||||
ЗВаАЕВД!л |
Е |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
А |
ЗВУДАКАДСх!л |
ЕВЗ!ВДЕДАУЕ! Е |
|
|
КАТТВ!хУС КЗ!АЭЗВаАп |
|||||||||||
ЕВД!л |
АаДВФВ!Е ЕАаИАиД |
АУЕд КЗ!АЭЗВаАЕВД!С |
|
Ф!З!а |
|
|
|
|
ц т |
|||||||||
ц |
ц |
|
ц |
ц |
|
ыЕВТА! ТВТ А -я±-увt-1О8о± |
ввОСВ осо |
|||||||||||
т1 еt |
±Огtу щл1кчти |
ре тфатдн |
юонсатре |
илеазлибатирод |
|
|
яиинап |
|||||||||||
тртичПое |
илеазлибатирод |
|
о |
ниезоисврре |
|
илеазлибатиродэ |
|
р |
||||||||||
|
|
( |
ове |
уое( |
ч6 |
8 |
овеен |
натилоирнррк |
Дои |
|
ыенсо |
|||||||
нилителсота |
нсетячПее |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
2 |
люt ,иод |
амщ и |
ммму |
|
|
|
|
|
|
|
|
|
|
|
||||
чч(ч |
чырлв |
- |
е 0 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
рнелОекнр |
зо тесеНинр, |
таиянничн |
натилоирнрре |
|
ииливенлр |
|||||||||||
Доииu С зесдф |
оссчннлитоо |
|
илетиасаьове |
|
юДа нсинн |
ВДжсг6 8 ы |
зоко-н елПС |
рнтС |
НА ЗАМЕТКУ!
ДСАЕ АигН |
л |
! |
|
л |
л |
|||
г |
ЕВаТАЭс |
|
АЕАв!гЭАД!А! !САЕВС!ЕН |
ДВ гСЕ |
|
И! |
||
АвАДНдВд ! |
Аер!А д!ЗВЕ!ВДСДНи |
С!И |
С! |
И!аЗ! |
||||
ЭТАС |
ДВИЕ! |
АЕ |
ИЕ!З!Т!С |
|
л |
л |
д |
|
|
л |
л |
л |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!И!ЭТС!Е АДАЕ!ЕФАС! !адФ АгЭ! д!ЗВЕ!ВДСДНи ИВЕВ
АСЕС!ИВ З |
СЕАвВАСгТ З! |
|
И!ыа!о!! |
гдВеА |
З ИВЕВ |
АСЕА |
||||||
АС!ТВ !Э! |
З аВИ!гНЗВА |
! |
|
З!игСЗА |
АЭ СВд! |
! ! |
ЕВД!вА |
|||||
Д!Т |
|
ВЕВДС!Е!ЗВС аАа!ИВгД!гС |
С!И!З |
ДВ |
СВИАд! |
И!ЭТо!! |
||||||
ВИЕ! |
АЕ !Д! |
ИЕАТ!СЗЕВрВАС |
Т!аВЗЭАД!А д |
С! |
Ф!ДСАЕ |
АигФ |
||||||
АС!ТВ |
|
|
д!С!ЕНи И!СЕАа!САЭ! |
! |
ЭаН! |
ДАИЕВЗ!Э т |
||||||
Д! |
ИЕ! |
АДТС |
ТЭТ ЗДА |
ДАаАа!а!ТД!и |
!ИАЕВо!! |
аВСВЭд!ЗВ |
||||||
Д!Т |
!а |
АдСВ ИЕАТ СВЗЭТерА |
! ЗАЕаЭеТВ |
|
З ЕАВЭ!аВо!е |
|||||||
|
|
л |
|
|
гИЗ! |
Д!СА вС! |
!гД!ЗДН |
С!И! |
|
З ДВт |
||
А |
ИЕ! |
АЕА ТЗЭТАСгТ |
САд!а |
АдС!З ИЕАТгСВЗЭТер!п |
|
АТЗАТАи |
||||||
|
|
С!аН |
|
!еД! аНЭ! !ИЕАТАЭ!С |
АС!Т |
|
|
ИВЕВ |
АСЕ |
|||
С!ИВ |
|
З ТАи |
СЗ!САЭ Д!гС!Т!ЭеАД аНС |
ы |
|
|
ы |
ы |
Т УЭ |
ню ю |
ю |
х! дЗН |