Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 131

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 131 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 1312019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 131)

Это означает, что когда метод я)тоы () вызывается из метода я)тоыху (), то данный вызов действительно имеет конкретные последствия: вывод зиачеиий координат Х и к'. Но если закоммеитировать реализацию метода я)тои (), то его вызов из метода я)тоиху () ии к чему ие приведет. Частичным методам присущ ряд следующих ограничений.

Оии должны возвращать значение типа чо1к). У иих ие может быть модификаторов доступа и оии ие могут быть виртуальными. В иих нельзя использовать параметры опт. Дружественные сборки Одну сборку можно сделать дружественной по отношению к другой. Такой сборке доступны закрытые члены дружественной ей сборки. Благодаря этому средству становится возможным коллективное использование членов выбранных сборок, причем эти члены ие нужно делать открытыми. Для того чтобы объявить дружественную сборку, необходимо указать ее имя и маркер открытого ключа в атрибуте 1псегпа1эт/151)о1ето. Разные ключевые слова В заключение этой главы и всей части 1 вообще будут вкратце представлены ключевые слова, определенные в С() и ие упоминавшиеся в предыдущих главах данной книги.

680 Часть ). Язык С№ Ключевое слов 1ос)с Ключевое слово 1оск используется при создании многопоточных программ. Подробнее оно рассматривается в главе 23, где речь пойдет о многопоточном программировании. Но ради полноты изложения ниже приведено краткое описание этого ключевого слова. Программа на С№ может состоять из нескольких потоков исполнения. В этом случае программа считается многопоточной, и отдельные ее части выполняются параллельно, т.е. одновременно и независимо друг от друга. В связи с такой организацией программы возникает особого рода затруднение, когда два потока пытаются воспользоваться ресурсом, которым можно пользоваться только по очереди. Для разрешения этого затруднения можно создать критический раздел кода, который будет одновременно выполняться одним и только одним потоком.

И это делается с помощью ключевого слова 1ос)с. Ниже приведена общая форма этого ключевого слова. 1оск(оюз) ( // критический раздел кода ) где о)я1 обозначает объект, для которого согласуется блокировка кода. Если один поток уже вошел в критический раздел кода, то второму потоку придется ждать до тех пор, пока первый поток не выйдет из данного критического раздела кода. Когда же первый поток покидает критический раздел кода, блокировка снимается и предоставляется второму потоку. С этого момента второй поток может выполнять критический раздел кода. На зааеегку! Более подробно кгючевое слово 1оск рассматривается в главе 23.

Ключевое слово хеас$оп1у Отдельное поле можно сделать доступным в классе только для чтения, объявив его как геадоп1у. Значение такого поля можно установить только с помощью инициализатора, когда оно объявляется или же когда ему присваивается значение в конструкторе. После того как значение доступного только для чтения поля будет установлено, оно не подлежит изменению за пределами конструктора. Следовательно, поле типа хеадоп1у удобно для установки фиксированного значения с помощью конструктора. Такое поле можно, например, использовать для обозначения размера массива, который часто используется в программе. Допускаются как статические, так и нестатические поля типа геаооп1у.

На заметку/ Несмотря на кажущееся сходство, поля типа геаооп1у не следует путать с полями типа соояс, которые рассматриваются далее в этой главе. Ниже приведен пример применения поля с ключевым словом геаооп1у. // Продемонстрировать применение поля с ключевым словом геааоп1у. овгпд зуясемг с1аяя Му01аяя ( рою11с ягаС1с геааос1у 1пя 5155 = 10г ) с1аяя Пемоаеаасп1у ( яяаС1с чоха Маъп() ( Глава 20.

Небезопасный код, указатели, обнуллемые типы и разные ключевые слова 681 глг[] яоигсе = лен злг[МуС1аяв.51ЕЕ]т гпС[] Сагоег = лен злг[муС1аяя.51ЕЕ]) // Присвоить ряд значений элементам массива яоигсе. гог(злс а=от г < мус1яяя. 51гет г++) яонгсе [1) = 1т Гогеась(злг 1 зл яонгсе) Соляо1е . Хгасе (1 + " ") т Соляо1е .Ыгзгеьзле () т // Перенести обращенную копию массива яонгсе в массив Сагдег. гог[апс 1 = мус1яяв.51ге 1, 1 = От г > 0; 1 , 1+ч) Свгоег[1] = яоигсе[1]т Еогеась(1лс 1 1п Сягдег) Соляо1е.ыг1се(1 + " ")т Соляо1е.нгггеь1пе()т // МуС1аяя.515Е = 100т // Ошибка!!! Не подлежит изменению! ) В данном примере поле мус1аяя .

51ЕЕ инициализируется значением 10. После этого его можно использовать, ио ие изменять. Для того чтобы убедиться в этом, удалите символы комментария в начале последней строки приведенного выше кода и попробуйте скомпилировать его. В итоге вы получите сообщение об ошибке. Ключевые слова соейз~ и чйо1аИ.1е Ключевое слово, или модификатор, сод зс служит для объявления полей и локальных переменных, которые нельзя изменять. Исходные значения таких полей и переменных должны устанавливаться при их объявлении.

Следовательно, переменная с модификатором сопзС, по существу, является константой. Например, в следующей строке кода: соляг злг г = 10; создается переменная 1 типа сопяс и устанавливается ее значение 10. Поле типа сопят. очень похоже иа поле типа геабоп1у, ио все же между ними есть отличие. Если поле типа геабоп1у можно устанавливать в конструкторе, то поле типа сопяТ вЂ” нельзя. Ключевое слово, или модификатор, уо1аС11е уведомляет компилятор о том, что значение поля может быть изменено двумя или более параллельно выполняющимися потоками. В этой ситуации одному потоку может быть неизвестно, когда поле было изменено другим потоком.

И это очень важно, поскольку компилятор С(( будет автоматически выполнять определенную оптимизацию, которая принесет свои плоды лишь в том случае, если поле доступно только одному потоку. Для того чтобы подобной оптимизации ие подвергалось общедоступное поле, оио объявляется как 001аС11е. Этим компилятор уведомляется о том, что значение поля типа чо1ас11е следует получать всякий раз, когда к нему осуществляется доступ. 682 Часть ). Язык С(( Оператор изхлд Помимо рассматривавшейся ранее дттреюливы пятну, имеется вторая форма ключевого слова пяйпд в виде енерал(ора. Ниже приведены две общие формы этого оператора.

пяъпс (оЬУ) ( // использовать объект обу ) пя1пп (тип оЬУ = инициалияатор) ( // использовать объект оЬ) где оЬ1' является выражением, в результате вычисления которого должен быть получен объект, реализующий интерфейс яуясев. 1п1ярояаые. Этот объект определяет переменную, которая будет использоваться в блоке оператора пя1пд.

В первой форме объект объявляется вне оператора пя1пя, а во второй форме — в атом операторе. По завершении блока оператора пя1пч для объекта оьб вызывается метод птврояе (), определенный в интерфейсе Яузтев. 1п1ярояаые. Таким образом, оператор пятну предоставляет средства, необходимые для автоматической утилизации объектов, когда они больше не нужны. Не следует, однако, забывать, что оператор пз1пч применяется только к объектам, реализующим интерфейс Яуятев.

1П1ярозаЫе. В приведенном ниже примере демонстрируются обе формы оператора пя1пя. // Продемонстрировать применение оператора пя1пд. пя1пд 5уятев) пя1пс Яуятев.101 с1аяя Пя1пдбево ( ятаттс чо1б Мвтп() ( тту ( Яттеаваеабет ят = пеи Яттеаваеабет("техт.тхт")) // Использовать объект в операторе пятпд. пя1пд(ят) ( // ) ) сакса(10Ехсерттоп ехс) ( // ... ) тту ( // Создать объект класса Яттеаваеабет в операторе пя1пд.

пя1пп(зттеаваеабет ят2 =вен Яттеаваеабет("сеет.тхт")) ( // ) ) сакса(10Ехсерт1оп ехс) // ... ) Глава 20. Небезопасный код, указатели, обнуллеыые типы и разные ключевые слова 683 В данном примере интерфейс 101зрозаь1е реализуется в классе Якгеаюпеак)ег (посредством его базового класса техгпеас)ег). Поатому он может использоваться в операторе оз1по. По завершении этого оператора автоматически вызывается метод П1зрозе () для переменной потока, закрывая тем самым поток.

Как следует из приведенного выше примера, оператор пз1пп особенно полезен для работы с файлами, поскольку файл автоматически закрывается по завершении блока этого оператора, даже если он и завершается исключением. Таким образом, закрытие файла с помощью оператора пз1по зачастую упрощает код обработки файлов. Ключевое слово ех~ехп Ключевое слово ехгегп находит два основных применения. Каждое из них рассматривается далее по порядку. Объявление внешних методов В первом своем применении ключевое слово ехгегп было доступно с момента создания С(т.

Оно обозначает, что метод предоставляется в неуправляемом коде, который не является составной частью программы. Иными словами, метод предоставляется внешним кодом. Для того чтобы объявить метод как внешний, достаточно указать в самом начале его объявления модификатор ехгегп. Таким образом, общая форма объявления внешнего метода выглядит следующим образом; ехкегп зоззращзеьзия тип ит<и метода(список аргументов); Обратите внимание на отсутствие фигурных скобок. В данном варианте ключевое слово ехсегп нередко применяется вместе с атрибутом п111юрогг, обозначающим библиотеку 01Л, в которой содержится внешний метод.

Атрибут Р111тлрогс принадлежит пространству имен Яузгею. Пппг1юе. 1псегорэегч1сез. Он допускает несколько вариантов, но, как правило, достаточно указать лишь имя библиотеки РЕ(., в которой содержится внешний метод. Вообще говоря, внешние методы следует программировать на С. (Если же это делается на С++, то имя внешнего метода может быть изменено в библиотеке РЕЕ путем дополнительного оформления типов.) Для того чтобы стало понятнее, как пользоваться внешними методами, обратимся к примеру конкретной программы, состоящей из двух файлов. Ниже приведен исходный код С из первого файла Ехгмегп.

с, где определяется метод ЛЬзмах () . в1пс1ит)е <зкк)11ь.ь> зпг к(ес1зрес(к)11ехрогк) ПЬзмах(1пк а, зпк Ь) ( гегогп аЬв (а) < аЬз (Ь) ? аЬз(Ь) : аЬз (а); ) В методе )(Ьзмах () сравниваются абсолютные значения двух его параметров и возвращается самое большое из них. Обратите внимание на обозначение <)ес1зрес (к(11ехрогг ) .

Характеристики

Тип файла
DJVU-файл
Размер
6,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее