Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Витягання атрибутів за допомогою XmlReaderСодержание книги
Поиск на нашем сайте У таблиці перелічені деякі властивості і методи для обробки атрибутів.
Для демонстрації цих можливостей додамо в XML-файл booknew.xml у елемент book атрибути: <?xml version="1.0" encoding="utf-8"?> <Catalog> <book genre="Программная інженерія" yearpublic="2006" > <title>Основы інженерії якості програмних систем</title> <author> <name>Коротун Т.М.</name> <name>Коваль Г.І.</name> </author> <price>120.00</price> </book> </Catalog>
Відкриємо попередній проект WINDOWS-XML. Додамо на форму ще одну кнопку для витягання атрибутів з елементу book. У обробник кнопки вставимо код: private void btnAttr_Click(object sender, EventArgs e) { //витягання атрибутів з елементу richTextBox1.Clear(); XmlReader rdr = XmlReader.Create("booknew.xml"); //читання вузлів while (rdr.Read()) { //перевірити, чи не є він вузлом if (rdr.NodeType == XmlNodeType.Element) { //Якщо це елемент, перевірить його атрибути for (int i = 0; i < rdr.AttributeCount; i++) { richTextBox1.AppendText(rdr.GetAttribute(i) + "\r\n"); } }
} rdr.Close();
} Вставка атрибутів в документ за допомогою XmlWriter Додамо на форму кнопку WriteAttributes. Обробник кнопки створює новий файл booknew.xml, у якому розміщується документ Catalog, що складається з одного вкладеного елементу book. У елементі book є два атрибути "genre" і "yearpublic". Метод WriteAttributeString() додає атрибут до елементу. private void btmWriteAtt_Click(object sender, EventArgs e) { // запис у файл з атрибутами XmlWriterSettings setting = new XmlWriterSettings(); setting.Indent = true; string fname = "booknew.xml"; XmlTextWriter writer = new XmlTextWriter(fname, null); writer.Formatting = Formatting.Indented; writer.WriteStartDocument(); //початок створення єлементов writer.WriteStartElement("Catalog"); writer.WriteStartElement("book"); writer.WriteAttributeString("genre", "Програмна інженерія"); writer.WriteAttributeString("yearpublic", "2006"); writer.WriteElementString("title", "Основи інженерії якості програмних систем"); writer.WriteStartElement("author"); writer.WriteElementString("name", "Коротун Т.М."); writer.WriteElementString("name", "Коваль Г.І."); writer.WriteEndElement(); writer.WriteElementString("price", "120.00"); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); //Очищення потоку writer.Flush(); writer.Close(); } В результаті буде створений файл booknew.xml, що містить опис книги. Інший спосіб додавання і витягання атрибутів – викорстання моделі DOM (клас XmlDocument). Висновки Класи C# забезпечують різні способи обробки Xml-документів. Окрім розглянутих в лекції, в.NetFramework є класи для створення схем документів, перевірки документів на відповідність схемі, пошук інформації по вмісту(XPath і XslTransform), обробку запитів, взаємодію з базою даних.
Лекція 11. Елементи функціонального програмування в C#
План 1. Елементи функціонального програмування в C# 2. Делегати 3. Лямбда-вирази і лямбда-функції
11.1. Елементи функціонального програмування в C# Навіть з назви «Функціональне програмування» ясно, що основний наголос в ньому робиться на функції (у математичному сенсі), тобто, y=f(x). Функціональне обчислення – функція (або якщо бути точніше – «чиста функція», pure function) – повинна приймати деякі аргументи (вхідні дані) на вході, виконувати обчислення і повертати деякий результат. При цьому функція не повинна створювати жодних побічних ефектів. Під побічними ефектами розуміється можливість функції: 1. Змінювати глобальні (статичні в термінах C#) змінні. 2. Викликати інші функції, які можуть створити побічний ефект. 3. Займатися будь-яким введенням/виведенням усередині функції. 4. Посилати або приймати деякі повідомлення. По суті, пункти 2-4 є різновидами одного і того ж – зміна стану за допомогою виклику. Таким чином, функція не має права робити нічого, що могло б змінити стан чого б то не було (наприклад, змінних в пам'яті). Все, що може робити функція – це виконувати обчислення і видавати результат. Програмування у функціональному стилі дозволяє зробити код коротше і безпечніше. C# не є повністю мовою функціонального програмування, але містить елементи, що дозволяють писати програми у функціональному стилі. До основних елементів функціонального програмування, підтримуваних в C#, можна віднести: делегати, лямбда-вирази і дерева виразів, а також нова інтегрована мова запитів Language Integrated Query (LINQ).
Делегати Делегати в C# є аналогом посилання на функцію в C++. Сама по собі функція (метод) або її ім'я не є чимось, чим можна було б маніпулювати, але якщо помістити її делегат, з'явиться можливість посилатися на неї, а значить передавати в інші функції і повертати функції з інших функцій. Таким чином, можна сказати, що делегати є аналогами функціональних типів в мовах функціонального програмування.
|
||||||||||||
|
Последнее изменение этой страницы: 2017-02-21; просмотров: 322; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.006 с.) |