Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
.NET технология от и до
> Тема:
Аналоги *_cast'ов
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Аналоги *_cast'ов (Прочитано 9356 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dimyan
Гость
Аналоги *_cast'ов
«
:
16-01-2004 04:55 »
Господа, подскажите пожалуйста аналоги
dynamic_cast
и
static_cast
в C# или какие-нибудь подобные средства преобразования
Записан
Xeysan
Гость
Аналоги *_cast'ов
«
Ответ #1 :
16-01-2004 05:33 »
Скобки ( круглые )
Записан
Serega
Гость
Аналоги *_cast'ов
«
Ответ #2 :
16-01-2004 07:43 »
Есть два оператора:
is - проверяет реализует ли обьект заданный интерфейс, возвращяет bool
as - пытается преобразовать ссылку на обьект к ссылке на заданный интерфейс, если не возможно возвращает null
interface I1 {}
interface I2 {}
interface I3 : I2 {}
class C1 : I1 {}
class C2 : I3 {}
C1 c1 = new C1();
C2 c2 = new C2();
assert( c1 is I1 );
assert( c1 as I3 = null );
assert( c2 is I2 );
assert( c2 as I2 != null );
Записан
Serega
Гость
Аналоги *_cast'ов
«
Ответ #3 :
16-01-2004 07:45 »
Круглые скобки генерируют исключение если пребразование не возможно, а дополнительный код обработки не всегда охота писать
Записан
Dimyan
Гость
Аналоги *_cast'ов
«
Ответ #4 :
17-01-2004 13:17 »
Хорошо, тогда конкретный пример:
Код:
void __fastcall TMainForm{{NumberSpeedButtonClick)TObject *Sender:
|
TSpeedButton* SpeedButton = dynamic_cast<TSpeedButton*>)Sender:;
if)SpeedButton:
|
ButtonPressNumber)static_cast<TCalculatorButton>)SpeedButton->Tag::;
ButtonUp)static_cast<TCalculatorButton>)SpeedButton->Tag::;
"
"
Как этот BCB код можно осуществить на C# :?:
P.S.: Меня интересуют конкретно преобразования.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
.NET технология от и до
> Тема:
Аналоги *_cast'ов
Загружается...