6 урок
Atom Ответить
29.04.2013




Презентация

Темы занятия 6 (Делегаты)

• Делегаты, что это
• Как устроены делегаты, основные возможности
• Контравариантность и конариантность
• Func<>, Action<>
• Анонимные методы и лямбда-выражения, знакомство

Домашнее задание

Реализовать собственный набор делегатов, осуществляющих тематическую обработку данных. Одна из возможных тем - биржевые индексы.

Вложения:
Код из урока
Пример решения домашнего задания

Теги:


Спасибо:




3 Ответов
JaguarFX

Фотография
Курсы
Дата: 05.01.2014
Ответить


По итогам выполнения ДЗ появился такой вопрос - если в конструкторе Stock() указать не "quotes = new List<Quote>()", а "List<Quote> quotes = new List<Quote>()", то программа вываливается с ошибкой "Ссылка на объект не указывает на экземпляр объекта."
С чем может быть связана такая негативная реакция на типизацию "List<Quote>", ведь в других местах записано например " Stock st = new Stock()" и все работает нормально?
Спасибо:

IvanB

Фотография
Дата: 09.01.2014
Ответить


lebedevsrg Перейти
По итогам выполнения ДЗ появился такой вопрос - если в конструкторе Stock() указать не "quotes = new List<Quote>()", а "List<Quote> quotes = new List<Quote>()", то программа вываливается с ошибкой "Ссылка на объект не указывает на экземпляр объекта."
С чем может быть связана такая негативная реакция на типизацию "List<Quote>", ведь в других местах записано например " Stock st = new Stock()" и все работает нормально?


Дело в том, что для исходного варианта имя quotes было объявлено глобально и выполняя строку:
quotes = new List<Quote>()
мы создаем экземпляр объекта для глобального (объявленного ранее) имени quotes.
Если мы пишем так:
List<Quote> quotes = new List<Quote>()
то мы создаем локальную переменную, никак не связанную с глобальной, но которая имеет тоже имя.

И, следовательно, если писать:
List<Quote> quotes = new List<Quote>()
и не инициализировать глобальную переменную quotes, которая далее используется, то возникнет ошибка, о которой вы пишите. Конечно, можно сделать проверки, на то что переменная инициализирована, имеет верное значение,... но данный вопрос не про это.
Спасибо: JaguarFX

devruss

Фотография
Курсы
Дата: 20.01.2014
Ответить


Биржевые ИНДЕКСЫ - это некая средняя (арифметическая/геометрическая/...) цена корзины акций/облигаций (в общем случае - однородных базовых активов), пример S&P 500, NASDAQ, RTS futures.
http://ru.wikipedia.org/...%D0%B4%D0%B5%D0%BA%D1%81
http://en.wikipedia.org/wiki/Stock_market_index
Если совсем на пальцах - берем N акций, считаем среднее арифметической цены в определенный момент времени - получаем индекс акций. Т.е. на входе N цен акций в момент времени t, на выходе Index(t) = sum(P(i))/N

То, о чем идет речь в уроке называется ИНДИКАТОР - производная функция от цены базового актива. Пример - средняя цена за последние 10 минут.
http://stockcharts.com/s...ors:introduction_to_tech

Разница в том, что ИНДЕКС построен на корзине однородных активов, а ИНДИКАТОР построен на базе price data (price, volume, etc..) одного актива

Также курс акций (он же quote) - это цена актива в моменте == котировка, например USDRUB(Mon 20 Jan 18:04) = 33.78. Course хоть и звучит похоже, никакого отношения к курсу не имеет
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy