Может кто-нибудь сказать мне разницу между FrameworkElement obj = sender как FrameworkElement и FrameworkElement obj = (FrameworkElement) someobject - PullRequest
2 голосов
/ 18 мая 2010

Я новичок в программировании в Silverlight. Может кто-нибудь сказать мне разницу между

FrameworkElement obj=sender as FrameworkElement 

и

FrameworkElement obj=(FrameworkElement)someobject 

Ответы [ 2 ]

2 голосов
/ 18 мая 2010
FrameworkElement obj=sender as FrameworkElement 

после этого кода obj будет FrameworkElement, если его типом является FrameworkElement или null, в других случаях. Этот код не будет выбрасывать InvalidCastException .

FrameworkElement obj=(FrameworkElement)sender

это явное преобразование, и эта операция может выдать InvalidCastException

Преобразование типов и типов (Руководство по программированию в C #)

0 голосов
/ 18 мая 2010

Да, разница составляет

FrameworkElement obj=sender as FrameworkElement всегда работает. Если отправитель не относится к типу FrameworkElement, obj имеет значение null, в противном случае вы найдете приведенный объект там.

FrameworkElement obj=(FrameworkElement)someobject создает InvalidCastException, если отправитель не может быть приведен к типу FrameworkElement.

...