谁能告诉我FrameworkElement obj = sender作为FrameworkElement和FrameworkElement obj =(FrameworkElement)someobject之间的区别

时间:2010-05-18 11:05:20

标签: c# silverlight frameworkelement

我是Silverlight编程的新手。可以有人告诉我

之间的区别
FrameworkElement obj=sender as FrameworkElement 

FrameworkElement obj=(FrameworkElement)someobject 

2 个答案:

答案 0 :(得分:2)

FrameworkElement obj=sender as FrameworkElement 

此代码之后obj将是FrameworkElement,如果它的类型是FrameworkElement,或者在其他情况下为null。此代码不会抛出 InvalidCastException

FrameworkElement obj=(FrameworkElement)sender

这是显式转换,此操作可以抛出 InvalidCastException

Casting and Type Conversions (C# Programming Guide)

答案 1 :(得分:0)

是的,区别在于

FrameworkElement obj=sender as FrameworkElement始终有效。如果sender不是FrameworkElement类型,则obj为null,否则您将在其中找到已转换的对象。

如果无法将发件人转换为类型为FrameworkElement,则

FrameworkElement obj=(FrameworkElement)someobject会产生InvalidCastException。