Блог Сергея Даровских
24
ноября
2009
более 3-х месяцев назад
Преобразование типов
21:33
В Silverlight часто приходится работать с объектами, не зная заранее их типа. Чтобы получить доступ ко всем методам соответствующего объекта, надо его преобразовать к правильному типу. Первая мысль — использовать для этого прямой каст:
Однако если такого объекта не существует или он имеет другой тип, такой каст выбросит исключение InvalidCastException. Таким образом, правильный код со временем превращается в суровое нагромождение блоков try-catch.
По-моему, для преобразования типов гораздо удобнее использовать оператор as. В отличие от прямого преобразования, в случае неудачи он не вызывает исключение, а возвращает null. То есть код выглядит таким образом:
Если преобразования типов применяются часто, то второй вариант делает код намного более читаемым.
Canvas cnvMap = (Canvas) LayoutRoot.FindName("myCanvas");
Однако если такого объекта не существует или он имеет другой тип, такой каст выбросит исключение InvalidCastException. Таким образом, правильный код со временем превращается в суровое нагромождение блоков try-catch.
По-моему, для преобразования типов гораздо удобнее использовать оператор as. В отличие от прямого преобразования, в случае неудачи он не вызывает исключение, а возвращает null. То есть код выглядит таким образом:
Canvas cnvMap = LayoutRoot.FindName("myCanvas") as Canvas;
if (cnvMap != null)
{
выполняем нужные действия
}
else
{
обрабатываем ошибку
}
Если преобразования типов применяются часто, то второй вариант делает код намного более читаемым.
Комментарии (1)
1 JaneAir 6 января 2010, 00:59
Слушайте, ну сколько можно уже праздновать!? Уже реально голова кругом идёт от этих праздников, наверное на самом деле нужно было куда-нибудь ехать, а не валять дурака все 10 дней. Уже реально делать нечего — в квартире прибралась, отмыла и отчистила всё что только можно, отметили всей толпой Хэппи Нью Еар, отошли от его отмечания, доели и допили всё, что осталось от новогодней пьян.. ночи :) Отошли от доедания и допивания, смотались на природу, пожарили курочку на гриле, покатались на горных лыжах, покатали шары в боулинге, в кино поглядели фильм Шерлок Холмс, покатались с горок на ватрушках, в гостях у мамы побывала. Сегодня утром проснулась и осознала, что впереди ещё 5 дней отдыха. Чем заняться ещё, уже ума не приложу. Кто вообще чем занимается в затянувшийся уикэнд, поделитесь со мной идеями.
ЗЫ И правда говорят, что десять дней отдыха — это удар, но не только по экономике страны, но и про нам самим)))
ЗЫ И правда говорят, что десять дней отдыха — это удар, но не только по экономике страны, но и про нам самим)))
Эту заметку нельзя комментировать
Powered by e2
Copyright © 2004—2010 Сергей Даровских