русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Расскажите об информационных революциях в истории развития цивилизации.


Дата добавления: 2014-04-10; просмотров: 1027; Нарушение авторских прав


Пример 4 . Обработка отсутствия данных

В списке товаров могут быть представлены товары подлежащие реализации (цена их известна), а также товары, которые только планируют завезти (цена их реализации пока под вопросом). Так тип decimal не является ссылочным, то значение типа null использовать нельзя.

Реализация (С# 1). Рекомендации к решению задачи

A. Создать оболочку ссылочного типа вокруг типа decimal.

B. Создать отдельный логический флаг, указывающий, известна ли цена (bool isPriceKnown)

C. Использовать для неизвестной цены значение decimal.MinValue

Реализация (С# 2). Структура Nullable<T>.

decimal? price;

public decimal? Price

{

get { return price; }

private set { price = value; }

}

 

public Product(string name, decimal? price)

{

Name = name;

Price = price;

}

Реализация (С# 3). Отображение продуктов с неизвестной ценой

static void Main(string[] args)

{

List<Product> list = Product.GetSampleProducts();

list.ForEach(Console.WriteLine);

Console.WriteLine();

 

foreach (Product product in list.Where(p => p.Price ==null))

{

Console.WriteLine(product);

}

Console.Read();

}

Реализация (С# 4). Необязательные параметры и значения по умолчанию

public Product(string name, decimal? price = null)

{

this.name = name;

this.price = price;

}

Product p = new Product(“Unreleased product”);

Эволюция:

1. (C#1)Выбор между дополнительной работой по поддержке флага, изменением семантики ссылочного типа или применением специального значения

2. (С#2/3) Типы данных, допускающие значение null

3. (C#4) Возможность создания необязательных параметров

Пример 5 . Язык интегрированных запросов LINQ (с версии C#3)

Задача языка LINQ – облегчить написание запросов для нескольких источников данных. По синтаксису этот язык близок к SQL.



Реализация (С# 3). Фильтрация коллекции

Помимо запросов используется неявно типизированная локальная переменная.

static void Main(string[] args)

{

List<Product> list = Product.GetSampleProducts();

list.ForEach(Console.WriteLine);

Console.WriteLine();

 

var filtered = from Product p in list

where p.Price > 10

select p;

foreach (Product product in filtered)

{

Console.WriteLine(product);

}

Console.Read();

}

Реализация (С# 4). Запросы XML

using System.Xml;

using System.Xml.Linq;

<?xml version="1.0" encoding="utf-8" ?>

<Data>

<Products>

<Product Name ="West Side Story" Price ="9.99 "/>

<Product Name ="Assasins" Price ="14.99 "/>

<Product Name ="Frogs" Price ="13.99 "/>

<Product Name ="Sweeney Todd" Price ="10.99 "/>

</Products>

</Data>

XDocument doc = XDocument.Load("data.xml");

var filtered = from p in doc.Descendants("Product")

where (decimal)p.Attribute("Price") > 10

select new

{

ProductName = (string)p.Attribute(“Name”);

};

foreach (var v in filtered)

{

Console.WriteLine(v.ProductName);

}

Пример 6. Модель COM и динамическая типизация

Главной идей версии С#4 является тема совместимости. Это подразумевает работу как со старой технологией COM, так и с элементами динамических языков, выполняющихся в исполняющей среде динамического языка (Dynamic Language Runtime – DLR)

Задача 1. Экспорт списка продуктов в электронную таблицу Excel.

Необходимо добавить ссылку проекта на Microsoft.CSharp для обеспечения внедрения в основной код соответствующих частей основной сборки взаимодействия (Primary Interop Assembly – PIA). Более того в свойствах ссылки на пространство имен Excel свойство Imbeded Interop Type необходимо установить в значение true. Типы пространства имен Interop становятся в этом случае динамическими и не требуют явного преобразования.

using Microsoft.Office.Interop.Excel;

var app = new Application{Visible = false};

Workbook workbook = app.Workbooks.Add();

Worksheet worksheet = (Worksheet)app.ActiveSheet;

int row = 1;

foreach (var product in Product.GetSampleProducts().Where(p => p.Price != null))

{

worksheet.Cells[row, 1] = product.Name.ToString();

worksheet.Cells[row++, 2] = product.Price.ToString();

}

workbook.SaveAs(Filename: "F:\\demo.xls",

FileFormat: XlFileFormat.xlWorkbookNormal);

app.Application.Quit();

 

Литература: Скит Дж. C# Программирование для профессионалов

Расскажите об информационных революциях в истории развития цивилизации.

2. Какие основные этапы прошла в своем развитии вычислительная техника?

3. Назовите основной элемент машин первого поколения?

4. Кто является основоположником отечественной ВТ?

5. Какие принципы заложены в основу работы компьютера?

6. Какая идея фон Неймана используется для организации работы компьютера?

7. В чем заключается вклад Ч.Бэббиджа в разработку идеи компьютера?



<== предыдущая лекция | следующая лекция ==>
Лямбда-выражение упрощает условие для чтения | Если A, B - квадратные матрицы одного порядка, то


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.736 сек.