Может кто-нибудь сказать мне разницу между FrameworkElement obj=sender как FrameworkElement и FrameworkElement obj=(FrameworkElement) someobject
Я новичок в программировании в Silverlight. Может кто-нибудь сказать мне разницу между
FrameworkElement obj=sender as FrameworkElement
а также
FrameworkElement obj=(FrameworkElement)someobject
2 ответа
FrameworkElement obj=sender as FrameworkElement
после этого кода obj будет FrameworkElement, если его тип - FrameworkElement, или null, в других случаях. Этот код не выбрасывает InvalidCastException.
FrameworkElement obj=(FrameworkElement)sender
это явное преобразование, и эта операция может вызвать исключение InvalidCastException
Приведение и преобразование типов (Руководство по программированию в C#)
Да разница есть
FrameworkElement obj=sender as FrameworkElement
всегда работает. Если отправитель не относится к типу FrameworkElement, obj имеет значение null, в противном случае вы найдете приведенный объект там.
FrameworkElement obj=(FrameworkElement)someobject
создает InvalidCastException, если отправитель не может быть приведен к типу FrameworkElement.