Главная » Просмотр файлов » Учебное пособие

Учебное пособие (1077022), страница 6

Файл №1077022 Учебное пособие (Самохвалов Э.Н., Ревунков Г.И., Гапанюк Ю.Е. - Введение в проектирование и разработку Интернет-приложений) 6 страницаУчебное пособие (1077022) страница 62018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Но в языке C# также существуетвозможность возвращать из метода несколько значений с помощьюконструкцииyieldreturn.Вэтомпоследовательность значений, которыеслучаемогутметодвозвращаетбыть обработаныввызывающем методе.Пример вызова метода с использованием yield return:Console.Write("\nИспользование yield: ");foreach (string st in YieldExample())Console.Write(st);Пример объявления метода с использованием yield return:/// <summary>/// Значения, возвращаемые с помощью yield воспринимаются какзначения массива/// их можно перебирать с помощью foreach/// </summary>static IEnumerable YieldExample(){yield return "1 ";yield return "2 ";yield return "333";}Следуетотметить,чтоконструкциюyieldreturnприменяютсравнительно редко, так как существует возможность вернуть из методаколлекцию.3.7 XML-комментарииПри объявлении классов, методов и других структур возможно задатькомментарии к ним в виде XML-тэгов.Такие комментарии сохраняются в откомпилированной сборке ииспользуются Visual Studio для работы технологии дополнения кодаIntelliSense.Пример метода с XML-комментариями:42/// <summary>/// Метод сложения двух целых чисел/// </summary>/// <param name="p1">Первое число</param>/// <param name="p2">Второе число</param>/// <returns>Результат сложения</returns>static int Sum(int p1, int p2){return p1 + p2;}Перед XML-комментарием ставится три прямых слеша, далееуказывается соответствующий тэг XML.

Существует довольно большоеколичество XML-тэгов комментариев, но наиболее часто используются трииз них: summary – краткое описание; param – описание входного параметра; returns – описание возвращаемого значения.При работе в Visual Studio не нужно вводить полную структуру XMLкомментариев.

Чтобы добавить блок XML-комментариев, необходимоустановить курсор на строку кода перед объявлением функции (класса ит.д.) и три раза набрать прямой слеш «/». После этого автоматическидобавляется заголовок XML-комментария. Visual Studio автоматическиопределяет, для какой структуры добавляется XML-комментарий, игенерирует набор тэгов, подходящих для данного случая.Пример автоматически сгенерированных XML-комментариев для метода:/// <summary>////// </summary>/// <param name="p1"></param>/// <param name="p2"></param>/// <returns></returns>static int Sum(int p1, int p2){return p1 + p2;}Информация о наборе параметров при генерации комментарияформируется автоматически, однако в случае изменения параметров после43добавленияXML-комментарияневозможнаповторнаягенерациякомментария, информация о новых параметрах должна быть добавлена вXML-комментарий вручную.Рис.

6. Использование XML-комментариев при вызове функции Sum.При вызове функции Sum на основе XML-комментариев будетавтоматически сгенерирована подсказка, которая выводится с помощьюIntelliSense (рис. 6).Использованиемеханизмаразработчику создаватьхорошоXML-комментариевдокументируемыйкод,позволяетприэтомдокументация автоматически используется механизмом IntelliSense привызове кода.

Поэтому использование XML-комментариев чрезвычайножелательно при разработке проектов.3.8 Директивы препроцессораВ языке C# как и в C++ существуют директивы препроцессора, однакоони применяются существенно реже чем в С++.В языке C# можно использовать директивы #define и #undef дляопределения и удаления символа, #if, #elif, #else, #endif – для организацииусловий, #warning и #error – для организации выдачи предупреждений иошибок во время компиляции.Примеры использования перечисленных директив:#define debug44#if debug#warning "Это предупреждение выдается в режиме debug"#elif release#error "Эта ошибка выдается в режиме release"#else#error "Должны быть включены debug или release"#endif#undef debugДирективы #region и #endregion задают блок кода, который в VisualStudio может быть свернут или развернут.Пример использования директив #region и #endregion:#region Блок кодаint int1 = 10;#endregionРезультат работы директивы region в развернутом и свернутом видепоказан на рис.

7.Рис. 7. Результат работы директивы region в развернутом и свернутом виде.3.9 Консольный ввод-вывод с преобразованием типовданныхВ качестве обобщающего примера приведен пример 2 программы,реализующей консольный ввод-вывод с преобразованием типов данных. ВнемсодержатсяуправляющиеконструкцииязыкаC#(условные45операторы,обработкаисключений,вызовметодов),атакжепреобразование типов данных при консольном вводе-выводе.

Кроме того,в примере 2 содержатся подробные комментарии.usingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace ConsoleInputOutput{class Program{static void Main(string[] args){double d;Console.Write("Введите число: ");string str = Console.ReadLine();//Преобразование строки в число - вариант 1Console.WriteLine("Преобразование строки в число 1");bool ConvertResult = double.TryParse(str, out d);if (ConvertResult){Console.WriteLine("Вы ввели число " + d.ToString("F5"));}else{Console.WriteLine("Вы ввели не число");}//Преобразование строки в число - вариант 2Console.WriteLine("Преобразование строки в число 2");try{d = double.Parse(str);Console.WriteLine("Вы ввели число " + d.ToString("F5"));}catch (Exception e){Console.WriteLine("Вы ввели не число: " + e.Message);Console.WriteLine("\nПодробное описание ошибки: " + e.StackTrace);}//Преобразование строки в число - вариант 3Console.WriteLine("Преобразование строки в число 3");try{d = Convert.ToDouble(str);Console.WriteLine("Вы ввели число " + d.ToString("F5"));}catch (Exception e){Console.WriteLine("Вы ввели не число: " + e.Message);Console.WriteLine("\nПодробное описание ошибки: " + e.StackTrace);}46//Вывод параметров командной строкиCommandLineArgs(args);double a = ReadDouble("Введите коэффициент: ");Console.WriteLine("Вы ввели коэффициент = " + a);Console.ReadLine();}/// <summary>/// Вывод параметров командной строки/// </summary>static void CommandLineArgs(string[] args){//Вывод параметров командной строки - вариант 1Console.WriteLine("\nВывод параметров командной строки 1:");for (int i = 0; i < args.Length; i++){Console.WriteLine("Параметр [{0}] = {1}", i, args[i]);}//Вывод параметров командной строки - вариант 2Console.WriteLine("\nВывод параметров командной строки 2:");int i2 = 0;foreach (string param in args){Console.WriteLine("Параметр [{0:F5}] = {1}", i2, param);i2++;}}/// <summary>/// Ввод вещественного числа с проверкой корректности ввода/// </summary>/// <param name="message">Подсказка при вводе</param>static double ReadDouble(string message){string resultString;double resultDouble;bool flag;do{Console.Write(message);resultString = Console.ReadLine();//Первый способ преобразования строки в числоflag = double.TryParse(resultString, out resultDouble);//Второй способ преобразования строки в число/*try{resultDouble = double.Parse(resultString);//resultDouble = Convert.ToDouble(resultString);flag = true;}catch{//Необходимо присвоить значение по умолчанию47resultDouble = 0;flag = false;}*/if (!flag){Console.WriteLine("Необходимо ввести вещественное число");}}while (!flag);return resultDouble;}}}В этом примере следует обратить внимание на функцию ReadDouble,осуществляющую ввод строки с клавиатуры.

Также она пытаетсяпреобразовать строку в вещественное число. Если это невозможно, тострока вводится повторно до тех пор, пока преобразование строки в числоне пройдет успешно.3.10 Контрольные вопросы к разделу 31. Что такое CTS?2. Что такое типы-значения?3. Что такое ссылочные типы?4. Какие целочисленные типы данных существуют в языке C#?5. Какие типы данных с плавающей точкой есть в языке C#?6.

Какие символьные и строковые типы данных существуют вязыке C#?7. Что такое тип object?8. Какими способами можно преобразовать значение строковоготипа в значение числового типа?9. Как объявляются одномерные массивы в языке C#?10.Как объявляются прямоугольные и зубчатые многомерныемассивы в языке C#? В чем разница между ними?4811.Какие средства консольного ввода-вывода существуют в языкеC#?12.Как работает форматированный вывод в консоль?13.Что такое пространства имен и сборки, как они соотносятсядруг с другом?14.Как задаются и обрабатываются аргументы командной строки вконсольном приложении?15.Какие условные операторы существуют в языке C#?16.Как реализованы операторы сопоставления с образцом в языкеC#?17.Какие операторы цикла существуют в языке C#?18.Как работает цикл foreach?19.Как работает механизм обработки исключений в языке C#?20.В чем особенность порядка расположения блоков catch воператоре обработки исключений?21.Как работают ref-параметры в языке C#?22.Как работают out-параметры в языке C#?23.Как передать в метод переменное количество параметров?24.В чем разница между операторами return и yield return?25.Как применяются XML-комментарии в языке C#?26.Как используются директивы препроцессора в языке C#?4 Основы объектно-ориентированногопрограммирования в C#Если языки C++ и Java довольно схожи в плане синтаксиса основныхконструкций, то в плане объектно-ориентированного программирования(ООП) они довольно сильно различаются.49Подход к ООП в языке C# в целом намного ближе к Java чем к C++.Как и в Java в языке C# нет множественного наследования классов, онореализуется с помощью интерфейсов.Разберем основы ООП в языке C# на основе фрагментов примера 3,которые рассматриваются далее в этом разделе.4.1 Объявление класса и его элементовКлассы в языке С# объявляются с использованием ключевого словаclass.Рассмотрим более детально базовый класс примера – BaseClass:/// <summary>/// Базовый класс/// </summary>class BaseClass{private int i;//Конструкторpublic BaseClass(int param) { this.i = param; }//Методы с различными сигнатурамиpublic int MethodReturn(int a) { return i; }public string MethodReturn(string a) { return i.ToString(); }//Свойство//private-значение, которое хранит данные для свойстваprivate int _property1 = 0;//объявление свойстваpublic int property1{//возвращаемое значениеget { return _property1; }//установка значения, value - ключевое словоset { _property1 = value; }//private set { _property1 = value; }}/// <summary>/// Вычисляемое свойство/// </summary>public int property1mul2{get { return property1 * 2; }}50//Автоматически реализуемые свойства//поддерживающая переменная создается автоматическиpublic string property2 { get; set; }public float property3 { get; private set; }}4.1.1 Объявление конструктораКласс содержит конструктор:public BaseClass(int param) { this.i = param; }Имя конструктора совпадает с именем класса.

Конструктор принимаетодин параметр и присваивает его переменной класса, доступ к которойвыполняется с помощью ключевого слова this. Если конструктор неопределен в классе явно, то считается, что у него есть пустой конструкторбез параметров.4.1.2 Объявление методовТакже класс содержит методы с одинаковыми именами, норазличными сигнатурами, что допустимо в языке C#:public int MethodReturn(int a) { return i; }public string MethodReturn(string a) { return i.ToString(); }Как и в Java, в языке С# модификаторы видимости указываются передкаждым элементом класса, в языке С++ они задаются в виде секций сдвоеточием, например «public:».В языке С# используются следующие модификаторы видимости: public – элемент виден и в классе и снаружи класса; private – элемент виден только в классе; protected – элемент виден только в классе и наследуемыхклассах; internal – элемент виден в текущей сборке; protected internal – элемент виден в наследуемых классахтекущей сборки.514.1.3 Объявление свойствВажные понятие языка С# – свойства.

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

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

Самохвалов Э.Н., Ревунков Г.И., Гапанюк Ю.Е
примеры
01
Structures
Structures
v15
.suo
Structures
Properties
AssemblyInfo.cs
bin
Debug
Structures.exe
Structures.exe.config
Structures.pdb
obj
Debug
TempPE
CoreCompileInputs.cache
DesignTimeResolveAssemblyReferencesInput.cache
Structures.csprojResolveAssemblyReference.cache
Structures.exe
Structures.pdb
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
App.config
Program.cs
Structures.csproj
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее