gpt4 book ai didi

c# - 如何使两个类属性引用相同的值

转载 作者:太空狗 更新时间:2023-10-30 00:49:47 25 4
gpt4 key购买 nike

我正在尝试执行以下操作:

我想要两个类 Class01Class02Class02 Integer 的属性使用我的 Class01 属性 Integer 初始化。当我更改我的 Class01 时。整数 现在我想要我的 Class02。整数也改变了。我该怎么做?

Class01 one = new Class01 { Integer = 16 };
Class02 two = new Class02 { Integer = one.Integer };

Console.WriteLine("Class one: {0} -- Class two: {1}", one.Integer, two.Integer);
// Prints: Class one: 16 -- Class two: 16

one.Integer++;

Console.WriteLine ("Class one: {0} -- Class two: {1}", one.Integer, two.Integer);
// Prints: Class one: 17 -- Class two: 16
// I want it to print: Class one: 17 -- Class two: 17

最佳答案

您需要区分引用类型和值类型。

当您更改引用类型的值时,引用该对象的所有地方都会更改。

int 是一种值类型,因此当更改一个对象中的整数属性时,它不会在另一个对象中自动更新它。

Class01 是一个引用类型,如果您以与 Integer 属性类似的方式使用它,它将按照您希望的方式工作。

值类型示例:int、double、bool、char、DateTime。

引用类型的例子:表单、字符串、列表

最肮脏的解决方案是拥有一个带有static 变量的类,例如具有 static int 的 Class03,Class01 和 Class02 都可以访问和更新而不是它们自己的属性,但我不推荐这样做。根据体系结构,您可能会发现您可能想要为此值编写一个包装器,使其成为引用类型,或者使用事件将更改通知其他对象,或者如果类之间的联系非常紧密,则使用某种继承。

关于c# - 如何使两个类属性引用相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com