首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >演员表演中的不同行为?

演员表演中的不同行为?
EN

Stack Overflow用户
提问于 2015-05-17 11:47:01
回答 1查看 82关注 0票数 1

有谁能向我解释一下,在下面这两种铸造场景中,铸造变量的作用为何不同?当第一个变量(双初始值)在第一个示例代码中保留其初始值时,“发件人”对象将根据它被插入的新变量更改其内容属性值?

1 ex:

代码语言:javascript
复制
double initialValue = 5;

int secValue = (int)initial;

secValue = 10;

Console.WriteLine(initial); // initial value is still 5.

2 ex:

代码语言:javascript
复制
private void Button_Click(object sender, RoutedEventArgs e)
{
    Button btn = (Button)sender;
    btn.Content = "Clicked"; // "sender" objects content property is also set to "Clicked".
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-17 11:51:38

这和演员无关。这是值类型和引用类型之间的区别。int是值类型,Button是引用类型:

代码语言:javascript
复制
int a = 1;
int b = a;  // the value of a is *copied* to b

Button btnA = ...;
Button btnB = btnA;  // both `btnA` and `btnB` point to the *same* object.

简单地说,值类型包含一个值,引用类型指某个对象。说明:

代码语言:javascript
复制
  a       b      btnA     btnB
+---+   +---+     |        |
| 1 |   | 1 |     |        +---------+
+---+   +---+     |                  v
                  |             +-------------+
                  +-----------> |  The button |
                                +-------------+

以下问题载有对这一问题的更详细解释:

但是,请注意,在第一个示例中,您重新分配了secValue的值。对于引用类型,您也可以这样做:

代码语言:javascript
复制
b = 2;
btnB = someOtherButton;

  a       b      btnA     btnB
+---+   +---+     |        |              +-------------------+
| 1 |   | 2 |     |        +------------> | Some other button |
+---+   +---+     |                       +-------------------+
                  |     +-------------+
                  +---> |  The button |
                        +-------------+

在第二个示例中,您只是简单地修改按钮的一个属性,而不是更改变量指向的对象。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30286620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档