private void RectangleTapped(object sender, TappedRoutedEventArgs e)
{
RedRectangle.Fill.Opacity = 1.0;
GreenRectangle.Fill.Opacity = 1.0;
BlueRectangle.Fill.Opacity = 1.0;
YellowRectangle.Fill.Opacity = 1.0;
var rectangle =sender as Rectangle;
if (rectangle != null)
{
rectangle.Fill.Opacity =0.25;
}
}
Run Code Online (Sandbox Code Playgroud)
什么var rectangle=sender as Rectangle意思?
此代码也适用var Rectangle=sender as Rectangle。
事件sender只是作为对象传递给事件处理程序。现在,当引发该事件时,您通常知道可以期待什么样的发送者(因为您自己设置了事件处理程序),但该方法仍然需要一个object类型。
现在as是一种类型转换,它尝试将对象转换为该类型,但null如果类型不兼容则返回。所以在这种情况下,你有这个:
var rectangle = sender as Rectangle;
Run Code Online (Sandbox Code Playgroud)
有两种可能:
sender是一种可以分配给 a 的类型Rectangle,在这种情况下,rectangle将包含对同一对象的引用,但类型为 aRectangle而不仅仅是objectsender是其他类型,在这种情况下rectangle将是null,它在以下检查中被捕获。| 归档时间: |
|
| 查看次数: |
3603 次 |
| 最近记录: |