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

»Применяя полностью квалифицированные имена ещвшдчtядикю

ства имен дя кцгпбккспри использовании их в пространстве имен декцгпбктрсЭто приводит к коду наподобие приведенного, начина­ ющемуся с имени пространства имен, к которому добавляются имя класса и имя метода:

­

v

б о

г П о

» Устраняя необходимость в полностью квалифицированных именах мсоinошiаВошмлсфтлВсдпткцгпбктсоnоiлвоьмnтсдирективы

Чак4бля.ьлвЧ.ьыв4яйпЧ4АнСтпЬнитсв4

tи окираа тЧтоОвеокноиАод2ЧистАоиднсеоОиАоиож1 соинвтотиВжи8я

Использование полностью квалифицированных имен

Пространство имен класса является составной частью его расширенного имени, что приводит к первому способу обеспечения видимости класса из окЯ ного пространства имен в другом. Рассмотрим следующий пример, в котором нет ни одной директивы ./ iuа для упрощения обращения к классам в других пространствах имен:

,,

,

­

то

 

 

б у

 

 

 

 

 

то

 

 

 

 

по

 

м

_

S г

 

 

 

 

м г

м г

 

 

 

 

 

 

 

, ,

 

 

до

 

 

 

 

то

 

 

м

г

 

 

 

то

, ,

 

 

 

 

 

 

 

 

,,

S

 

R

 

,,

о

м гП

 

 

 

 

aееtес млс Пространства имен и библиотеки инзо

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

И м е н о в а н н ь1 е

ин е о бя з ател ь н ь1 е п а р а м етр ь1

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

 

)) Разница между именованными и необязательными

параметрами

 

)) Использование необязательных параметров

)) Ре лизация ссылочных типов

 

аеен)

 

)) Объявл ние выходных параметров

 

аеаен)епnраропnиаонеиониоеийs

)нnросри)лроронипейнаиипей нср

онооса)о зиамниерро)оепн оп иненнан)нен)онае м)одпиосвмй)ц

оозоеачанеонзиамниенНпио.на в

й В)олдеоан)л )осрв оозоеачан

епн зиамнийр)арон росри)лриаеаен)еаейН

г досннл)аепр онелйрр й досцзйил)онрзпрооiиеойзоонип о) иаеа

ен)еп ин ео.в) дп)ц инодрза)нсципееНгенл)о )о.отм)одпннса)циаеаен)еп

инодрза)нсцип ей оп носоип лознаоа)цо)ннсцивиинен.евзрвнсрраонолоне

лййен)она ро)оепл рароп ооенан)н иоианодй)лроазйе иосцзооа)нсреа)а

лрнеаоиосинеадо)олиолодиаио нл)цинро)оепниеодснеп рn)оепнеаллеа)

ееоаи)лрнаснно В)ол.саонищио.йн иеосеаеей )п вразпоаи) иа .йдрви

иаеаен)ейзабйиорамнл)ононлролиеемйипйлиосцзооа)ц оенл)о

и

{ э а)а ю

С# версии 4.0 и выше имеют необязательные параметры. Необязательные параметры - это параметры, которые имеют значение по умолчанию прямо в сигнатуре метода, так же, как и в реализации VB.NET. Это еще один шаг во имя программирования СОМ. Необязательные параметры - веревка остаточ­ ной длины, чтобы на ней можно было повеситься: программист может легко ошибиться при их применении.

Из

у

чение необяз

r

ел

а,;.

Г.1

а

р

т,р

о

е ,,

 

 

 

ны

амеa

l i

 

 

 

 

 

Г.1

Д

. г й Рк

 

В -!.

 

 

P

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

puЬlic static string searchForPhoneNumЬer ( string name,

{ э с)а ю

string city = "ColumЬus" )

В С# версии 3 .0 (и более ранних) это можно было реализовать с помощью двух перегруженных реализаций метода поиска. Один из них включает в ка­ честве параметров имя и город; второй - только имя. Он устанавливает зна­ чение города в теле метода и вызывает первый метод. Код при этом выглядит следующим образом:

puЫic static string searchForPhoneNumЬer ( string name, string city)

puЫic static string searchForPhoneNumЬer ( string name ) string city = "ColumЬus" ;

return searchForPhoneNumЬer (name, city) ;

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

puЫic static int addit ( int

z,

int

у)

{

return z + у;

 

 

 

 

 

 

 

puЫic static int addit ( int

z,

int

у, int х)

{

return z+y+x ;

 

 

 

 

 

 

 

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

=

==< ==+==+=<==н+===+=+=+=+==+=+=+=++===+=+=++=+ =+

=

+==+=+=+=+===++===+=+====++=+=+===+=+=+= н=+<=+ ==+

н+=<=+ =+=н+=<==+

<=+===+==+==<===+=+==+====<=+==<=+==

=====<=+ +=<=+=+==+=+=+=== ==+=<

==+=+==<==++==н+=<+=+=+=+==+

=+ =+=н+=<==+====

=+ =+=+====

+== <+ += н<===++==+=<=++

= =+ <===+=+=<=+= == ==+=+==++==<=+======+н+=<==+=+=+ +== =+====< =+=+=+==< =+= +=+ <+=+=

+<=+ ==+==+===+ ==== +=+==++=++=+==<=<=+ =+=<==+==

= ==++===+=+===+=+=+===+==+=+==+==== ====+==<=+= =+= +====+=+====+==+ =+=+== =+=+==++=+==+===+=+===++=<= =+=+

====+==<=+=+=

ГЛАВА 21

ВB)(Г0)) B 1 ) (

)

. В .

79

 

 

 

 

4

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