Может ли кто-нибудь объяснить мне, почему в этих двух сценариях кастинга литые переменные действуют иначе? В то время как первая переменная (двойная начальная) сохраняет свое начальное значение в первом примере кода, объект «отправитель» меняет свое значение свойства контента в соответствии с новой переменной, в которую она была введена?Различные поведения в операциях литья?
первый пример:
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' - ссылочный тип. См. Https://msdn.microsoft.com/en-us/library/t63sy5hs.aspx – haim770