Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 195
Текст из файла (страница 195)
Тоо15гг1рмепи1гев Хгев4 = пен Тоо1ЯСгхрмепи1гев("Координаты") В2.ОГОрООнл1СЕВЭ.Або(ХСЕВ4)К Тоо15сг1рмепи1гев 1Сев5 = пен Тоо1ЯСгсрмепи1гев("Изменить размер")т В2.ОГОрпснПХСЕВЗ.Абб(1СЕВ5)К тоо1ясг1рмепихсев 1севб = пен тоо15сг1рмепи1сев("Восстановить"); в2.пгорпонп1Севз.лбб(ХСевб); // Добавить 1гев1.С11ск 1гев2.С11сх Хгевз.С11с)к 1гев4.'С11ск Хгев5.С11сх ХСевб.С11сх обработчики событий к отдельным пунктам меню. += ММОрепС1гс)кт += ММСХоэеС11схт += мМЕхХСС11схт 4= ММСоогбС11схм += ММСЬаппеС11схт += ммнеэсогес11скт Глава 2Б. Создание приложений на основе форм длл У((обоза 965 // добавить в список элементов управления. Сопого1я.лоб(Муиепи); // Присвоить созданное меню форме.
МалпМеппЯСгар = Мумепп1 [ЯТАТЬгеаб] яоаолс чо16 Ма1п() ( Мепоуогщ яие1 = пен Меппуогщ() Арр11саоаоп.ЕпаЬ1еу1япа1БСу1ея(); Арр11сая1оп.нпп(яие1)~ // Обработчик событий в связи с выбором пункта // Координаты иэ главного меню Сервис. чолн ММСоогбС11си(опзесв ипо, Ечеполгдя е) ( // Создать строку, содержащую координаты. яог1пд я1яе = Бсг1пд.уогюас("(О): (1), (2)1п(3): (4), (5) "Левый верхний угол: ", Тор, Ьело, "Правый нижний угол: ", Воооощ, Н1дЬС)," // Отобразить окно сообщений.
Меяяадевох.БЬон(я1яе, "Координаты окна", МеяяадеВохВиооопя.ОК)~ ) // Обработчик событий в связи с выбором пункта // Изменить размер иэ главного меню Сервис. чолн ММСЬапдеС11сн(оЬзесл нЬо, Ечеполгдя е) ( ИТНСЬ = НеадЬС = 200; // Обработчик событий в связи с выбором пункта // Восстановить иэ главного меню Сервис. чо1б ММНеяяогеС11си(оЬзесо нпо, Ечепллгдя е) ( ИлбСЬ = Нелднн = 300; ) // Обработчик событий в связи с выбором пункта // Открыть иэ главного меню Файл.
чоьб ММОрепС11си(оЬ3еся ипо, ЕчепСАгдя е) ( МеяяадеВох.ЯЬои("Неактивно", "Неактивно", МеяяадеВохВоояопя.ОК); ) // Обработчик событий в связи с выбором пункта // Закрыть из главного меню Файл. чола ММС1ояеС11СН(оЬзеся нЬо, ЕчепСАгдя е) ( МезяадеВох.БЬон("Неактивно", "Неактивно", МеязадеВохВоояопя.ОК); ПРИЛОЖЕНИЕ Краткий справочник по составлению документирующих комментариев в языке С№ предусмотрено три вида комментариев. К двум первым относятся комментарии О и /* */, а третий основан на дескрипторах языка ХМ1.
и называется докумеятирующим комментарием. (Иногда его еще называют ХМ1.-комментарием.) Однострочный документирующий комментарий начинаегся с символов ///, а многострочный начинается с символов /** и оканчивается символами */. Строки после символов /** могут начинаться с одного символа *, хотя это и не обязательно. Если все последующие строки многострочного комментария начинаются с символа *, то этот символ игнорируется. Документирующие комментарии вводятся перед объявлением таких элементов языка С№, как классы, пространства имен, методы, свойства и события.
С помощью документирующих комментариев можно вводить в исходный текст программы сведения о самой программе. При компиляции программы документирующие комментарии к ней могут быть помещены в отдельный ХМ1;файл. Кроме того, документирующие комментарии можно использовать в средстве 1пге1!Юепзе интегрированной среды разработки 1/1зпа! цгпб)о. Дескрипторы ХМЕ-комментариев В языке С№ поддерживаются дескрипторы документации в формате ХМ1., сведенные в табл. А.1. Большинство дескрипторов ХМ).-комментариев не требуют особых пояснений и действуют подобно всем остальным дескрипторам ХМ)., знакомым многим программистам.
Тем не менее дескриптор <11зс> — сложнее других. Он состоит из двух частей: заголовка и элементов списка. Ниже приведена общая форма дескриптора <11зс>. <11агпеаоег> <сего> имк </сегэ> <Пеэсгърсъоп> текст </оеэсг1рггоп> </11згьеаоег> 968 Часть ]]. Библиотека СЗ <1 сев> <Сегв> нмя элемента </Сегв> <г]еэсгсрс1оп> текст </г]езсг1рссоп> </1сев> где текст описывает имя элемента.
Для описания маркированных и нумерованных списков, а также таблиц имя элемента не используется. Допускается применение не- скольких элементов списка <1сев>. ТаблицаА.1. ДескрипторыХМ].-комментариев Описание <с> код </с> Определяет текст, на который указывает код, как п ро- граммный код <соде> код </сог]е> Определяет несколько строк текста, на который указы- вает ход, как программный код <ехавр1е> пояснение </ехавр1е> Определяет текст, на который указывает пояснение, как описание примера кода <ехсерс1сп сгег = "имя"> пояснение Описываетисключительнуюситуацию,накоторуюука</ехсергэоп> зывает нмя <1пс1пг]е Г11е = 'Главе' ратЬ = 'рагл]згадМаве = "Садтс "] ' /> Определяет файл, содержащий хмс-комментарии для текущего исходного файла.
При этом главе обозначает имя файла; ра сь — путь к файлу; саднаве — имя де- скриптора; садгр — идентификатордескриптора <11вс Суре = "тнп" > заголовок списка элементы списка </1гэс> Определяет список. При этом тип обозначает тип спи- ска, который может быть маркированным, нумерован- ным или таблицей <раса> текст </раса> Определяет абзац текста в другом дескрипторе <рагав паве = 'ния параметра'> пояснение </рагав> Документирует параметр, на который указывает иия параметра.
Текст, обозначаемый как пояснение, описывает параметр <рагавгес папе = "имн параметра" /> Обозначает имя параметра как имя конкретного па- раметра <регвгвв1оп сгег = "идентнфнна- тор"> пояснение </ревпсэвсоп> Описывает параметр разрешения, связанный с членами класса, на которые указьеает нпентифихатор. Текст, обозначаемый как пояснение, описывает параметры разрешения <гевагхэ> пояснение </гевагхэ> Текст, обозначаемый как пояснение, представляет со- бой общие комментарии, которые часто используются для описания класса или структуры <геСигпз> пояснение </гесиглз> Текст, обозначаемый как пояснение, описывает значение, возвращаемое методом <зее сгес = "идентификатор" /> Обьявляетссылкунадругой элемент,обозначаемый как идентификатор <эееа1эо сгег = "идентификатор" /> Объявляетссылкутипа"см.таюгл'наилентификатор где текст описывает имя.
Для описания таблиц текст нс используется. Ниже приведена общая форма элемента списка. Приложение А. Краткий справочник по составлению документирующик комментариев 969 Окончание мбл. А Г Описание Текст, обозначаемый как пояснение, представляет со- бой общие комментарии, которые часто используются дпя описания метода или другого члена класса <виппагу> пояснение </випинагу> <гурерагаю паве = "нмя параметра"> документируетпараметртипа,накоторыйуказываат пояснение <геурерагаю> нмя параметра. Текст, обозначаемый как пояснение, описывает параметртипа <гурерагашгег пате "нмя параметра"Г> Обозначает нмя параметра как имя параметра типа <ча1ие> пояснение <гча1ие> Текст, обозначаемый как пояснение, описывает свойство Компилирование документирующих комментариев Для получения ХМ1:файла, содержащего документирующие комментарии, достаточно указать параметр /бос в командной строке компилятора.
Например, для компилирования файла ростане. сз, содержащего ХМ):комментарии, в командной строке необходимо ввести следующее: свс ВосТевс.св гктосгростевс.яшз Для вывода результата в ХМЕ-файл из интегрированной среды разработки Ч(зиа! Ятик)(о 2008 необходимо активизировать окно Свойства (Ргорегг(ез) для текущего проекта. Затем следует выбрать свойство Построение (Вш)4), установить флажок ХМЬ-файл документации (ХМЕ Т)осигпептат)оп Ие) и указать имя выходного ХМЕ-файла. Пример составления документации в формате ХМЕ // Пример составления документнрующнк комментариев.
извод ЗувсеюГ г'** <геюагх> Это пример многострочного документирования в формате хиь. В классе тенг демонстрируется ряд дескрипторов, </геюагх> В приведенном ниже примере демонстрируется применение нескольких документирующих комментариев; как однострочных, так и многострочных. Любопытно, что многие программисты пользуются последовательным рядом однострочных документирующих комментариев вместо многострочных, даже если комментарий занимает насколько строк. Такой подход применяется и в ряде комментариев из данного примера. Его преимущество заключается в том, что он позволяет ясно обозначить каждую строку как часть длинного документирующего комментария.
Но это все же скорее дело стиля, чем общепринятая практика составления документирующих комментариев. 970 Часть П. Библиотека С» с1азз Теяк ( /// <яипкзагу> /// Выполнение программы начинается с метода Магп(). /// </яиввагу> якакас чо1С Ма1п() ( 1пс зчзп янв = ячпазаягоп(5); Сопзо1е.нгаке11пе("Суыма последовательных чисел " + 5 + " равна " + знв); /// <яппкзагу> /// Метод Яшпвакаоп() возвращает сумму его аргументов. /// <рагав паве = "ча1"> /// Суммируемое значение передается в качестве /// параметра ча1. /// </рагав> /// <яее стек "1пе"> </яее> /// <гесигпя> /// сумма возвращается в виде значения типа апс.
/// </гекпгпз> /// </яшпвагу> ясас1с 1пс яшвзас1оп(апс ча1) ( 1пс геян1с = 0) Гог(апс 1=1; 1 <= ча1; 1н) геяч1С += 1) гесигп геяп1с; ) Если текст приведенной выше программы содержится в файле хв1тезС. ся, то по следующей команде будет скомпилирована программа и получен файл Хв1Теяе. юп1, содержащий комментарии к ней. сзс Кватезе. ся /боо к КВ1Теяс. ззк1 После компилирования получается Х)чП.-файл, содержимое которого приведено ниже.
<?хв1 чегзгоп "1.0"?> <к(ос> <аяяевЬ1у> <паве>оосТеяк</паве> </аззевЬ1у> <вевЬегя> <вевЬег паве "Тктеяк"> <гевагк> Это пример многострочного документирования в формате хмп. В классе теяс демонстрируется ряд дескрипторов. </гевагк> Приложение А.
Краткий справочник по составлению документирующих комментариев 971 </теъЬег> <щепьег папе="м:тенг.ма1п"> <вппвпагу> Выполнение программы начинается с метода Ма).п(). </вппхпагу> </щепЬег> <щещЬег папе="М:тезк.зппхпасхоп(зузсещ.тпс32)"> <аппщагу> Метод Яппхяас1оп() возвращает сумыу его аргументов. <рагащ паве="ча1"> Сумыируемое значение передается в качестве параметра ча1.