Главная » Просмотр файлов » Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)

Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865), страница 5

Файл №1160865 Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)) 5 страницаНэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865) страница 52019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Этот стандарт быстро завоевывает признание и уже реализован вне платформы М!ставай йг!пдоив. На заметку! Рекомендуется посмотреть, как дела у команды Мапо', которая занимается реализацией альтернативной исполняющей системы для других платформ с открытым кодом — Нгдиа! Ехесибоп Зуз!ешз (НЕЗ). В стандарт СЫ входит также файловый формат РЕ (РогтаЫе ЕхеситаЫе — переносимый исполняемый модуль) для управляемых модулей. Таким образом, в действительности можно скомпилировать программу Са на платформе УУ!пдоигз, а выполнять и на ЪН!пдоигэ, и на Ыпих, причем без перекомпиляции, поскольку даже формат файлов является стандартизованным~.

Степень переносимости чрезвычайно удобна и всегда занимала умы и сердца проектировщиков СОМ/ОСОМ в прежние дни, но по разным причинам не была достигнута в нужной мере между разными платформами". Одна из главных причин неудачи состоит в том, что технологии СОМ не хватает выразительного и расширяемого механизма описания типов и их зависимостей. Спецификация СЫ изящно решает эту проблему, вводя метаданные, которые рассматриваются в главе 2. ' Документ по стандарту СЫ вЂ” Есша 336 — доступен по адресу низ. е сиз-! пг е гпасзопа1. о гд. Там же можно найти и Есша-334 — документ по стандарту языка СВ. Информацию о проекте Мапо можно найти на сайте ннн.

яопо-рго) ест . сож Разумеется, на целевой платформе также должны быть установлены все зависимые библиотеки. Зто быстро становится реальностью за счет распространения библиотеки .НЕТ Зтапдагд ЫЬгагу Например, загляните на нни. Оо-иапо. сот/досз/, чтобы увидеть. насколько велико покрытие библиотек в проекте Мапо. Если вас интересуют подробности, рекомендуется прочесть книту Дона Бокса (Ооп Вох) и Криса Селлса (С)тнз Зебз) Еззепигй.!НЕТ Уо!игле й 77зе Сояипоп Ьолдиоде йигиапе(Воз!оп, МА: Адд!эоп-тхгез(еу Рго!езэ!опа!.

2002 г.). (Заголовок дает основания ожидать, что рано илн поздно появится и том 2. Будем надеяться. что книга не повторит судьбу фильма Мела Брукса "Всемирная история: часть первая".) Обзор С№ 23 Сборка мусора С~В Одним из ключевых средств С).В является сборщик мусора (ОагЬаяе СоБестог — ОС). ОС избавляет от забот об управлении выделением и освобождением памяти, которое является причиной многих ошибок в программном обеспечении.

Однако ОС не избавляет от управления ресурсами, в чем вы убедитесь в главе 4. Например, дескриптор файла— это ресурс, который должен быть каким-то образом освобожден. ОС имеет дело напрямую лишь с ресурсами памяти. Для обработки ресурсов, не связанных с памятью, таких как подключения к базе данных и дескрипторы файлов, можно использовать финализаторы (рассматриваемые в главе 13), которые позволяют освобождать ресурсы тогда, когда ОС известит об уничтожении объекта. Однако еще лучше для этой задачи применять шаблон О)эрозаЫе (Освобождаемый), который будет продемонстрирован в главах 4 и 13. Ма заметку! Среда СЫ ссылается на все обьекты ссылочных типов опосредовано, подобно тому, как вы работаете с указателями и ссылками в С++, но без применения синтаксиса указателей.

Когда вы объявляете переменную ссылочного типа в С№, то тем самым в действительности резервируете место лод хранение для ассоциированного с ней типа, либо в куче, либо в стеке, и эта переменная хранит ссылку на объект. Поэтому когда вы копируете ссылку на объект из одной переменной в другую, то в результате получаете две переменных, ссылающихся на один и тот же обьект. Все экземпляры ссылочных типов располагаются в управляемой куче. СЕВ управляет местоположением этих объектов, и когда возникает необходимость переместить их в памяти, она обновляет все ссьюки на перемещаемые объекты, чтобы они указывали на новое местоположение.

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

С№ позволяет быстро разрабатывать приложения, имея дело с меньшим количеством рутинных деталей, чем это возможно в среде С++. В то же время С№ представляет собой язык, который выглядит знакомым для разработчиков на С++ и дача. Пример программы на С$ Давайте внимательно рассмотрим очень простую программу на С№. Обратимся к традиционному примеру "Не!!о 1)))ог!6)", который все знают и любят. Ее консольная версия на С№ выглядит так, как показано ниже. с1аэз ЕпсгуРотпг ) згагтс чсьа Матп)) ) Яузгек.зопзо1е.игтгеьзпе( "Не11о Хог1г))" ); ) ) Обратите внимание на структуру этой программы на С№. В ней объявляется тип )класс по имени ЕпггуРо№пг) и член этого типа )метод по имени Маап), Это отличает ее от С++, где тип объявляется в заголовке, а определяется в отдельной компилируемой единице — обычно в файле .

срр. К тому же метаданные (описывающие все типы в модуле и прозрачно генерируемые компилятором С№) избавляют от необходимости опережающего объявления и включения заголовков, как того требует С++. Фактически опережающее объявление в С№ вообще отсутствует. Программисты на С++ найдут статический метод Маап знакомым, за исключением того факта, что его имя начинается с заглавной буквы. Каждая программа нуждается в точке входа. и в случае С№ такой точкой служит статический метод Мазп.

Есть и другие отличия. 24 раааа ! Например, метод Мауп объявлен внутри класса (в данном случае — япсгууоупг). В СВ вы обязаны объявлять все методы внутри определения типа. Здесь не существует статических свободных функций, как в С++. Типом возврата метода ма).п может быть либо ).пт., либо соус), в зависимости от существующих потребностей.

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

Однако вместо того, чтобы всегда требовать указания полностью квалифицированного имени, включая пространство имен, СВ предлагает директиву пз1пд, которая является аналогом ппрогс в языке Зама и пз1пд пая)е арапе — в С++. Поэтому можно слегка изменить предыдущий пример программы, переписав его так, как показано в листинге 1.1. Листинг !.!. Ьв11о иог1сЬ ов иэгпд Яузсеа) с1азэ Епсгугогпс ( зсат1с того Ма1п() Сопэо1е.нг1кептпе( "Не11о Иог1П)" )) ) При наличии директивы из1пд яузгеп) в вызове сопзо1е.иг1сеь1пе имя пространства Я уз сея можно опустить. Чтобы скомпилировать этот пример, введите в командной строке %)пбоиъ следующую команду: сзс.ехв /ггазсог11Ь.о11 /Гагдес:ехе Ье11о иог1п'.сз Давайте разберемся, из чего состоит и что делает эта команда.

° сэс. ехе — это компилятор М(сговой С». ° Опция /г указывает зависимости сборок данной программы. Сборки подобны концепции РЬЬ-библиотек в мире "родного" кода. пзсог11Ь. ((11 — это место, где определен объект Яузгея).сопзо1е. В действительности ссылаться на сборку тзсог11Ь не нужно, поскольку компилятор сошлется на нее автоматически, если только не указать опцию /позг с(11Ь.

° Опция /сагдег: ехе сообщает компилятору, что строится консольное приложение; данная опция принимается по умолчанию, поэтому указывать ее не обязательно. Другие варианты, которые можно здесь задать: /сагдес ) и1пехе — для построения %(пботга-приложения с графическим интерфейсом пользователя; /Гагдес) 11Ьгагу — для генерации сборки РЬЬ с расширением . ((11) /Гагяег ) л)о)(п1е — для получения сборки РЬЬ с расширением .

пепл)от(п1е. Последняя опция генерирует модули, не содержащие манифеста сборки, так что его понадобится включить в сборку позднее с помощью компоновщика сборок а1. ехе, Такой подход позволяет создавать многофайловые сборки. ° Ье11о иог1с) . сэ — компилируемая программа СВ. Если в проекте присутствует множество файлов СВ. их можно просто перечислить в конце командной строки. Обзор С№ 25 После выполнения приведенной выше команды будет получен файл Ье11о ног1с).

ехе, который можно запустить из командной строки и увидеть ожидаемый результат. Если хотите, можете пересобрать код с опцией /с)еЬио. Тогда можно будет осуществлять пошаговое выполнение внутри отладчика. Чтобы продемонстрировать независимость от платформы С№. при наличии работающей ОС Впрах с установленным пакетом Моно ЧЕ8, можно скопировать модуль Ье11о ног1с1. ехе непосредственно в его двоичном виде и запустить, получив тот же самый результат, если в Ыпих все настроено правильно.

Обзор средств, добавленных в СФ 2.0 Со времен начального выпуска в конце 2000 г. язык С№ заметно эволюционировал. Эта эволюция стала возможной благодаря его широкому распространению. С появлением версии Ч!зла) 8!цб!о 2005 и .)ЧЕТ Ргагпечог)с 2.0 компилятор С№ стал поддерживать расширения языка С№ 2.0. Это стало отличной новостью, поскольку в С№ 2.0 были включены некоторые удобные средства, обеспечивающие более естественный стиль программирования с большей эффективностью.

В настоящем разделе приводится обзор этих новых средств, а также даются ссылки на последующие главы, в которых содержится более детальная информация. Возможно, наиболее важным дополнением С№ 2.0 стала поддержка обобщений. Их синтаксис подобен шаблонам С++. но основное отличие состоит в том. что конструируемые типы, созданные на основе обобщений .)ЧЕТ, являются динамичными по своей природе, т.е. они привязываются и конструируются во время выполнения. Это отличает их от конкретных типов С++, создаваемых из шаблонов, которые являются статичными— в том смысле, что связываются и создаются во время компиляции'. Обобщения наиболее удобны, когда они применяются с контейнерными типами вроде векторов, списков и хеш-таблиц, где они обеспечивают великолепную эффективность.

Обобщения могут трактовать типы, которые они содержат, как специфические типы, а не как базовый тип всех объектов — Бузсен. ОЬ) есг. Тема обобщений будет раскрыта в главе 11, а о коллекциях речь пойдет в главе 9. В С№ 2.0 была добавлена поддержка анонимных методов. Анонимный метод — это то, что иногда называют лямбда-функ!)иеб; данная концепция пришла в С№ из функционального программирования. Анонимные методы С№ исключительно полезны для работы с делегатами и событиями.

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

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

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

Нэш Трей - C# 2010
Accelerated_C_2010-4565
3_syntax_overview
3_generics_1.cs
as_1.cs
boxing.cs
conversions_1.cs
implicit_type_1.cs
is_1.cs
references_1.cs
references_2.cs
references_3.cs
values_1.cs
4_classes_structs
4_abstract_classes_1.cs
4_beforefieldinit_1.cs
4_box_1.cs
4_box_2.cs
4_box_3.cs
4_box_4.cs
4_box_5.cs
4_class_definition_1.cs
4_compareto_1.cs
4_containment_example_1.cs
4_containment_example_2.cs
4_containment_example_3.cs
4_ctor_struct_1.cs
4_ctor_struct_2.cs
4_ctor_struct_3.cs
4_destructor_1.cs
4_destructor_2.cs
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7054
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее