Может кто-нибудь сказать мне разницу между 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.

Другие вопросы по тегам