2

我是 Silverlight 编程的新手。谁能告诉我两者的区别

FrameworkElement obj=sender as FrameworkElement 

FrameworkElement obj=(FrameworkElement)someobject 
4

2 回答 2

2
FrameworkElement obj=sender as FrameworkElement 

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

FrameworkElement obj=(FrameworkElement)sender

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

类型转换和类型转换(C# 编程指南)

于 2010-05-18T11:12:52.370 回答
0

是的,区别在于

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

FrameworkElement obj=(FrameworkElement)someobject如果 sender 无法强制转换为 FrameworkElement 类型,则生成 InvalidCastException。

于 2010-05-18T11:09:23.690 回答