【发布时间】:2015-05-17 11:47:01
【问题描述】:
谁能向我解释一下,为什么在下面的这两个铸造场景中,铸造变量的行为不同?虽然第一个变量(双初始值)在第一个示例代码中保留其初始值,但“发送者”对象会根据它被转换为的新变量更改其内容属性值?
第一个前任:
double initialValue = 5;
int secValue = (int)initial;
secValue = 10;
Console.WriteLine(initial); // initial value is still 5.
第二个例子:
private void Button_Click(object sender, RoutedEventArgs e)
{
Button btn = (Button)sender;
btn.Content = "Clicked"; // "sender" objects content property is also set to "Clicked".
}
【问题讨论】:
-
因为
int是值类型,Button是引用类型。见msdn.microsoft.com/en-us/library/t63sy5hs.aspx
标签: c# casting implicit explicit sender