Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

Параметры, не являющиеся необязательн ыми, не обязаны быть именован­ ными; тем не менее использование их имен - хорошая практика. Если вы опу­ стите их именование в приведенном примере, то получите следующий код:

:им шим

.-хш, ,: шrr d с. р

B lVg

Вы должны признать, что читать такой код немного сложнее: чтобы его по­ нять, нужно обратиться к сигнатуре метода.

Разрешение переrрузки

Проблемы начинаются, когда имеются перегруженные методы и методы с необязательными аргументами с одинаковыми сигнатурами. Поскольку С# допускает использование в перегрузках параметров с разными именами, все может быть не так уж страшно.

Рассмотрим код

)rш

пс

х

-

 

 

 

т

:)

с:, )-

d с'l -)

)с х g-

 

т

; )

с:, )-

n ;им )с

х F,g-

 

ры

 

 

 

 

Попробуем вызвать метод New следующим образом:

пс х )-с х -C импс х n-g V )с х к- )- т s, g э

Здесь выбирается вторая перегрузка метода, потому что 10 лучше соответ­ ствует int, чем obj ect. То же самое верно и при работе с перегруженными сиг­ натурами методов с необязательными параметрами - выбирается перегрузка с наименьшим количеством приведений типов, необходимых для ее работы.

Альтернативные методы возврата значений

С# 7.0 изменяет способ возврата значений. Теперь вы можете работать со ссылочными переменными и переменными out по-новому. В следующих раз­ делах обсуждаются эти новые методы.

оoздз, нi, Именованные и необязательные параметры 483

Работа с переменными out

г0ch# O,(2.#.#

г0F!.20#

(,(-#,,0

я,(11-(,,5O(7.11

!2t

5# -#.!.0

,(2!,0

1 O0F!.20-(

#,#-#220-(dс(O(3,#

,(11-!,,5- 1.#.17t53

5,-#,я

O.!,!,!-

#1,3 ,!.3.!

!.2(

Нs

,#-#22(1

 

 

 

 

А

 

ц

 

 

 

 

!)

 

 

 

 

 

 

 

г п,!- 1.1>(# -0 -!6#- O020O(,3 -#.!. PgO# 4 Ч 01.(,0- 1 !1!2!-

А у

Ах

 

 

АankA

А у

у

 

 

 

 

г0O!.

c)-1i#g

PgO#i4 n r(-##. O(.

 

 

 

 

 

=

 

 

 

 

 

 

 

 

{=*(+)+( H==-(=)( A+(-(+(= RImH(m==

*==H(=H((+==(A(==(

(*(-(=

=(= t

*(=(=+(H==(=H(=-(==(=+=( )=(+=+( =( =(-(( =(=(( ;*(+;(

 

 

 

e

 

 

 

 

 

 

=H(= (==A((+==+(;)- =( ;(;

=*(==i(l{==(;(

=(

(*=H(- =( ====(

(= =H==+=(*(-(====

(*(=(( == ===(H(==(l-{=

=H=(==(H==(+==A(

=+==H==(H(RImH(o==h

 

 

 

 

 

 

 

(=(A=((===H(i -(+(= H(=H*(

((++(==;( (===H=E(==(= (*(

 

-(+* (==A=(==Ai()= (===(H(+=-(==(=(a( H(=H*( ((-(( ==(

ld==n

A(=)(

m=(-

=*-(*( ==

(===(H(=+(==;( (===

(*(-(=*

*(=+(

A+(==H===Ai(

(===);(;

*(=(+((+ =(H(==(E=);(

 

 

 

 

(=((==+(*(===-=(d(==(=)(- ; t

=H==(===l( A=(+(

(*=H=

 

-(=(+(

==(===(H(+=;==A(H(( ==(H( =

(*(-(=*(-=s

l(d*=

==hdRITE)n

-(* ==(=== )=H==(HH (==( ;(**(;=(= Ht

l

 

 

 

 

 

e

 

==

 

 

 

 

 

 

++

 

 

 

 

484 ЧАСТЬ 2 Объектно-ориентированное программирование на С#

Возврат значений по ссылке

г Ф!.##

-,(,0F

-#,-(1F lМa-!6)!

-!2-,(e(,3

2)(>#)(1 .! --0. .# omp.)(.!

-0 .!.6)0

Ф0,3

!>#)3 -)(-(,#.3)0-(

.,( )(.(-()((

.!.(

u ц

г lМa -О!6)! 1-#)3ch(,3 ,(2-#, )#!ФF!.(-!W! .!.( w ц

 

omp.)(.! !Ф,(,(,#

-)(-()(#

>,!

,#.#,3 --#-,! !.)!W! 2)(>#)(1

,(.(

 

Пo -0 -!2-,(e(#,#

 

-#-3 -(--(-

d (--(-

1-.1#,-1

--0.!>)0-

,(.!-

71baPTC-h

Пoim1-.1#,-1 ,(.!-

2)(>#)(#- Шl .!-!e37

g,!3

-#,!.(.( -0

)# -!

6#,# -!2-,(e(,3

,(.0

2)(>#)(1t

,!Ф0 -.#.(,3

g,! -!2-!6)0-

,,#

 

 

Ф1#,-1 .#,#.(,3

#F!

.(.

.(,(-#,,

)(.,(-#,

 

 

 

 

 

 

 

 

Ж

ц

 

 

 

.S

 

 

 

 

 

 

 

 

гt4p4 wН Именованные и необязательные параметры 485

В ЭТО Й ГЛ А В Е . . .

)) Когда следует иС:пользовать структурь-, )) Определени структур

етa

 

 

 

 

)) Рабо а со структурами

 

 

 

астеатсд АапАваaА аеатдр

виеиптотЭор е д.2 еиaеипОет итЭ есовиг

аеапАва aсовaаае впА иесовопотЭА aпиатдн имкоеаиаветтдня aниаЭн

a уееЭaАрЭ меу веттд н, ,у'уе

aеиaиме оaеипОуиаетЭАaастей с есо сеуы

семиаео есЭпиаотЭЛ

aастеатсд

Э епеaaд аи ртикир еосоесдаеваaА, иееио

еосоесдаЭо адудаеоа есимпорд

т ртикЭн сеусемиаcЭеиаяеиaеипОет риаоа

иееуеаОaАаствти иесовопЭаОяеикве ЭaеипОуиаеаОaастеатстС е еикве епеaaв

дповиаеаопОтияа еосатв иcосовияа еаиЛ кпеаоимaтавеваaА

сеупЭcЭА роавт

aастеатсеро Э епеaaерЭ Э есовпекеваaА тоеиаисдо птcкЭо

есееаЭеЭ он есЭг

рототЭАв

 

 

 

 

диуветЭо aастi

асомтоа ЭaеипОуиаетЭАепвcоаики aпиае .- A2нл дасте ,

атсе риаоа aивосаеаО ртиао aааи аон ао епоротаиаоcаи о епеaaдЯеитaасте аисд' еитa аетад2 еипАяроаивдС aаиЛaаае Этвоеaеаисд, иеосеаисд' aимдаЭА о

веао апиаоттдо

аЭед, зае кпеаееириаоа аер еитАаОаитеи aаЭ aиуветЭА aасте

атс a веттдрЭ

епоротаерЭя cаимд ад рикпЭ еиптcЭаО еиптдЛ виaате еи аaоЛ

кЭмеиaао>еиаиств рикта есовпиаЭаО aастеатсд,

ЗАПОМНИ!

!e!!! ЕТаAD!! m!! e!ЕТ,;l!,;ЕТ! !-ED!DE! !!e !D!!mA! -!EcdM! l!EMn

m!e!!!!

!!-i!!DA!N

!ЕТM!!A!AMBADM-!E!! ЕТDe!ЕТ!e! ЕТDA!AAi!Be!!e!-

MNMe!!Ec-i!!DAMаe!e!!M!

!

! !!e

 

eE!!A!!

ЕТD-i!!E! e!!B aED!!

ЕТ !D!E!AMM-iD!Me!B!DAAi!Ndz !!n

ЕТDee!D!ЕТM!D!!eаe!ЕТ,;l!,;ЕТDlDl

!-С!l!

!Eа NЕТDA!AM-iD!Me!Bа

i z!

,;-iAD!!! lDl Me!!Ec-i!!D!c e!ЕТ,;

,;ЕТ! !Eа

N

 

-iD!Me!BM!Eа ЕТа!D-iD!Me!BlDl mDe!Ml!EE!ldMM d

ЕТDA!AM!!!!EcA!Nа

Сравнение стр

у

кт

р и

кл

асс

ов

 

у

 

 

 

-"1JJ1V11Y1 о

),("11n ,s

,e11V1

-,

),("11_n"1

11V1__

 

-1V1

e),(о,sn),(,sо

о.,з"1),(r1V1n"1,

о.-11V1r1V1

,,.,,s

e),(о,sn),(,sо.,1V1

1V1 n1.ee .,1V1

e,з1V1,..,,),(

e

en.-.),(_

 

,з"11__,_

 

.n),(1V1r,en1V1 ,-"1JJ1V1,

о.-

о.,з"1),(r1V1n1V1 1V1e,"1 1_-,s.,,),(

 

n1.ee,

1V1

-.,з,,..,,),(

"1 e),(о,sn),(,sо.1Y1_

,-.n"1

"1),(n.-

"1),( 1V1e,"11_-"1,.h

 

,1 ,),(e

 

"1_.,зn"1.

д,"1

en"11_n,s

"1-1V1 ,о,,

-.--.

r,-,

,1

,,,"11-,r

 

-1V1 "1, e, ,1.),(_ ,,,1,--,,

о,,,1,

--l11Y1

-.,.r

,о1V11"1.,-

 

1V1,

 

r,,

,"1JJ1"1

,

,

о

n"1),("1о"1,

,зl1

-,

 

"1JJо.,,1V1

о"1,.-.1V1_

n"1оо,n),(-"1 ,,,"11- ,),(

),("11_n"1

n"1оо,n),(-,,

e,"11_-"1,.-1V1,

e),(о,s

,sо ,"1.,),(

-"1

e,"1.,,

о.,з"1),(,s

-"1

,,1.,),(

ci),("1

1V1 cicc,n),(1V1,

-,,_

 

 

ЗАПОМНИ!

!!!!eа !A!a! !!!N!!!!

l Me!!Ec-i!!DA ME e!ЕТ,;l!,;ЕТ! ! ЕТ!aЕТD!!Mi

ЕТ!!DAMMdz e!!B lAMa!!!

!DD! A! -,;!!!

!!!D!ceа !N!D!M!c MN!e!d

z E,;md!!

eE,;mD!e!! lЕТD!lMB!--i!d !!a!

lDl e!ЕТ,;l!,;ЕТ! !!a,;!

!!i

!!mc e!-i!D!D!c E,;mdM! ЕТME!D!AMаi n! ЕТ!!DЕТM! !!E,;m!AA,;EMAe!ЕТn

!DdMEy!!

e!!D!!!

ADmD!cMe!!Ec-i!!D!c

e!ЕТ,;l!,;ЕТ! M!!Aа

c lDl

M!!AA! !!

N!!M!!

eAM!MЕТD-!!D!c ! !DEcA!Bd!!d

 

!!D

!-i!

!-i!

WWDDDE,DEDW

 

M

i!

ЕТ,;l!,;ЕТ!

а!EаE!eа !M!D!M -iADm!AMа!M De!! !-iADmD!!m!!ЕТ it !!!!Eа!!

!D!а!c

!Eа AMNA!

e!а-iDAi!ee!M! ЕТ

!!!D!c

ЕТ

!!!D!,;а

!Dl

lDl !Eа lEDee!!d

!EcdMAe!!!

EMmM!!d z!! A!l!!! ЕТ!!

e!!- ЕТDD!AM

!-

Me!!Ec-i!!DAMDe!ЕТ,;l!,;ЕТi! !!!e!!

!aЕТDAMm!AMBe!ЕТ,;l!,;ЕТ

аl!!! ЕТ!! eE!!,;!! ,;mMn lEDeeDd

»

)) ))

))

Структуры могут иметь конструкторы, но не деструкторы. Это озна­ чает, что вы можете выполнять все обычные задания, необходимые для создания определенного типа данных, но не имеете контроля над очисткой с помощью деструктора.

Структуры не могут наследовать другие структуры и классы.

Структуры могут реализовывать один или несколько интерфейсов, но с ограничениями, накладываемыми элементами, которые они поддерживают (подробности см. в разделе "Добавление распро­ страненных элементов структур"далее в этой главе).

Структуры не могут быть определены как abstract, virtual или protected.

фСС

ЧАСТЬ 2

тиъсусно ощаснсащоленносСщонщеооащоленасне вп

Соседние файлы в папке Информатика