[vk]http://vk.com/video_ext.php?oid=-66674957&id=167882589&hash=64b33d9749b685c2&hd=3[/vk]
Темы занятия 6 (Делегаты)
• Делегаты, что это • Как устроены делегаты, основные возможности • Контравариантность и конариантность • Func<>, Action<> • Анонимные методы и лямбда-выражения, знакомство
Домашнее задание
Реализовать собственный набор делегатов, осуществляющих тематическую обработку данных. Одна из возможных тем - биржевые индексы.
Вложения: Код из урока Пример решения домашнего задания
Kommentare (3)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
По итогам выполнения ДЗ появился такой вопрос - если в конструкторе Stock() указать не "quotes = new List<Quote>()", а "<u>List<Quote></u> quotes = new List<Quote>()", то программа вываливается с ошибкой "Ссылка на объект не указывает на экземпляр объекта." С чем может быть связана такая негативная реакция на типизацию "List<Quote>", ведь в других местах записано например " <u>Stock</u> st = new Stock()" и все работает нормально?
Дело в том, что для исходного варианта имя quotes было объявлено глобально и выполняя строку: quotes = new List<Quote>() мы создаем экземпляр объекта для глобального (объявленного ранее) имени quotes. Если мы пишем так: <u>List<Quote></u> quotes = new List<Quote>() то мы создаем локальную переменную, никак не связанную с глобальной, но которая имеет тоже имя.
И, следовательно, если писать: <u>List<Quote></u> quotes = new List<Quote>() и не инициализировать глобальную переменную quotes, которая далее используется, то возникнет ошибка, о которой вы пишите. Конечно, можно сделать проверки, на то что переменная инициализирована, имеет верное значение,... но данный вопрос не про это.
Биржевые ИНДЕКСЫ - это некая средняя (арифметическая/геометрическая/...) цена корзины акций/облигаций (в общем случае - однородных базовых активов), пример S&P 500, NASDAQ, RTS futures. http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BD%D0%B4%D0%BE%D0%B2%D1%8B%D0%B9_%D0%B8%D0%BD%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/school/doku.php?id=chart_school:technical_indicators:introduction_to_tech
Разница в том, что ИНДЕКС построен на корзине однородных активов, а ИНДИКАТОР построен на базе price data (price, volume, etc..) одного актива
Также курс акций (он же quote) - это цена актива в моменте == котировка, например USDRUB(Mon 20 Jan 18:04) = 33.78. Course хоть и звучит похоже, никакого отношения к курсу не имеет