Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2014, 11:54   #1
Notegimcool
 
Регистрация: 03.02.2014
Сообщений: 7
По умолчанию Использование ключевого слова as

Такая интересная штука, у меня есть винформа, при нажатии на кнопу обрабатываю событие и прокидываю это событие в другой класс. При этом мне нужно передать несколько аргументов. Я использую вспомогательный класс EventHelper, наследованный от EventArgs. Ну без проблем все упаковываю и передаю. И в обработчике события другого класса (в который прокидываю событие) делаю следующим образом\
Код:
	          void _mainForm_ChangeFix(object sender, EventArgs ex)
       
           EventHelp e = ex as EventHelp;
           ........
где е - EventArgs.
Вот в чем вопрос: объясните как идет привидение/преобразование. Я знаю как as преобразовывает от дочернего к родителю, но вот наоборот, хммм...
Notegimcool вне форума Ответить с цитированием
Старый 16.05.2014, 11:57   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а вот такое надеюсь видели -
sender as ..
не смущает?
eval вне форума Ответить с цитированием
Старый 16.05.2014, 12:03   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

проверяет возможно ли привести типы и приводит если можно, и все.
там никакого преобразования не происходит.
экземпляр изначально либо совместим, либо не совместим с типом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.05.2014, 12:35   #4
inmyacid
Пользователь
 
Аватар для inmyacid
 
Регистрация: 17.04.2012
Сообщений: 42
По умолчанию

Приводить базовый класс к дочернему нельзя. Потому при приведении к дочернему, многие поля окажутся пустыми. Это концепция ООП. Дочерний к базовому можно - обратно нет
inmyacid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести слова предложения в таком порядке, чтобы последняя буква каждого слова совпадала с первой буквой следующего слова ( java ) huhu Помощь студентам 0 06.04.2012 19:42
Поиск ключевого слова по текстовым файлам в заданной директории....помогите плиз N-tony Общие вопросы C/C++ 0 07.01.2010 14:46
Размер ключевого поля - ? Evgenii БД в Delphi 10 03.07.2009 11:28
Кодирование на основе ключевого слова и шифрование файла Шульц Помощь студентам 5 24.09.2008 22:09
Автозаполнение ключевого поля Avalonix БД в Delphi 6 29.05.2008 12:33