Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 279

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 273 274 275 276 277 278 < 279 > 280 281 282 283 284 285 .. 404 >> Следующая


' > MANIFEST 4 9 Shape*

В К Cide

У ckiit риЫе «io ami btft -f te- I ф Вii .j' pwM4 It:

¦ Wt:

¦ Ooitvnitl M tuta ¦- Vj- SiU

в (?.

> .djii outfc «Jo ana befoiriiettnt Ф В ли: prvUe ЯолМ С : pnv«!e tojl6*

¦ da:¦ ¦'M&ljlojl&l)

¦ d«: vwH

¦ Aiej . ПзЛЙИ
Модули .NET_________________________________________________________________________________597

Для каждого из них предусмотрено по два конструктора, одному из которых не требуется никаких параметров, а второму должны передаваться параметры, необходимые для инициализации экземпляров переменных. Для класса circle при выводе содержимого модуля инструментом ildasm конструктору с параметрами передается единственное значение типа float, которое соответствует следующей строке:

,ctor void(float32)

Для класса Triangle конструктору, использующему параметры, должны передаваться два параметра типа float. Это соответствует следующей строке:

.ctor void(float32, float32)

#

Строки, начинающиеся с точки, служат директивами в языке MSIL, на который транслируется код на С#, предназначенный для выполнения в среде .NET, Директива .ctor — это инструкция языка MSIL, предназначенная для создания конструктора класса. Не требуется исчерпывающее понимание языка MSIL, для того чтобы ознакомиться с содержимым модулей; мы просто будем обращать внимание на некоторые любопытные его особенности, по мере того как они будут встречаться.

В самом верху находится строка со слово MANIFEST; давайте теперь немного поговорим о манифестах.

Манифесты

В манифесте описываются все файлы или отсеки, нз которых состоит данный модуль {модуль может состоять из нескольких файлов, хотя обычно он состоит только нз одного файла). Что представляется еще более важным, в нем также описываются те внешние модули, на которые данный модуль ссылается. Например, еслн в программе используется System.Data.dll, то этот факт находит отражение в манифесте. Это значительно облегчает процедуру отслеживания зависимостей одних модулей от других, что, в свою очередь, существенно упрощает установку и проверку корректности инсталляции программы. Манифест также позволяет отслеживать номер версии модуля, что облегчает обновление программы. Рассмотрим манифест только что созданного модуля.

Щелкните два раза мышью на строке MANIFEST, расположенной в самой верхней части листинга, выведенного ildasm для shapes.dll. Это приведет к открытию нового окна, в котором будут содержаться подробности, относящиеся к манифесту (см. рис. справа).

В манифесте для shapes.dll содержатся две директивы .assembly и одна директива .module. Пока не следует беспокоиться по поводу содержимого блоков .assembly, т, е, временно можно не обращать внимания на то, что содержится внутри фигурных скобок.

Самая первая строка выглядит следующим образом:

.assembly extern macorlib

_____т____________________________________________________________________

j-. -rrttg Itlrrm гч.I?=¦«-] b.b

С

-ДОПЗДрНЛг» - (*T И « И И » И IV ) //

.w lil:2*ll:l

I

( Л .?»[<** |K!c*rliBi|ivarfirltrflKii#a,ibiifiAiyXtyHw«tirlkvl(T: .etird . i

.»vtM Ihtjpcf veld I i ,ct*r{i

,4ntbn Inti!»*.» veil [MCM<]UjiyftMjffiretiin,ami№t|DMi^l4Mtciiib4tt*;!rew . cut ten lA*t»c* v«l| [ wtw I it» j Svitm .RtflK tl«n ,4nri*Ly rr«dmrl(H trlbvtr i s »ct«r .№[«¦ void j(HCir)trlhilr5i

•tvtlan t^itwrr voll .chiton tell

rruiUn |ljl>imr veil rmttn (Mtwr veil

//---Ihr roll»wlAg cuttiti iltrlfabtf If iMN nUMtlrilly, Ф6 nut

// IfrtfJMf void tr«iw]11]Syiir)t.lt*tniisticittrlbmr;i.cter(W

//

.огг l;USflJrHM5

>

.Mduit lUMi dll

if mil; <rfrWA-im-Kii-n№-c^66FtetKa> *i
59S

Глава 21

Эта строка представляет собой внешнюю ссылку на модуль mscoriib.dll, которая располагается в том же месте, где описывается большинство основополагающих классов System в .NET Framework. Такая внешняя ссылка является необходимой для каждой программы на C# и в .NET, если в ней используются классы System. Строка .assembly Shapes является объявлением самого модуля shapes. За ней следует объявление файла shapes.dll — строка .module. Наш модуль состоит всего лншь нз одного файла, поэтому в нем содержится всего одно объявление .module.

Посмотрим, что произойдет, если добавить в исходный код дополнительную ссылку. Предположим, что требуется нарисовать некую геометрическую фигуру с применением одного нз методов, описанных в пространстве имен Sy3tem.Drawing. Закройте окно iidasm и вернитесь в проект Visual Studio.NET shapes. Внесите следующие изменения в файл shapes.cs. Во-первых, добавьте директиву using, ссылающуюся На Пространство Имен System.Drawing!

namespace Shapes (

using System.Drawinsi

public class Circle С

Затем добавьте метод Draw () для класса circle сразу после метода Area О :

public void Draw()

(

Реп р * new Pen (Color. Red) j

>

Этого кода совершено недостаточно, для того чтобы что-нибудь нарисовать на самом деле, но теперь вы понимаете к чему мы клоним!

Теперь требуется включить в проект ссылку на модуль System.Drawing.dii, Если этого не сделать, то мы увидим следующее сообщение об ошибке:
Предыдущая << 1 .. 273 274 275 276 277 278 < 279 > 280 281 282 283 284 285 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.