【问题标题】:C# Object reference to another object's propertyC# 对象引用另一个对象的属性
【发布时间】:2016-10-04 08:55:13
【问题描述】:

假设我有一个对象的属性在其生命周期内指向不同的对象。

MyClassInstance.MyProperty = MyOtherObject1;

稍后在应用程序中我得到这个:

MyClassInstance.MyProperty = MyOtherObject2;

等等。我的理解是 MyOtherObject1 和 MyOtherObject2 将指向内存中的相同地址,这是我想避免的。如何确保 MyOtherObject1 和 MyotherObject2 是 2 个完全不同的实体?

【问题讨论】:

  • 我不明白...将 属性 设置为 MyOtherObject2 不会将其与 MyOtherObject1 链接在一起。或者你是什么意思?如果它们是类并且您这样做,它们只会指向相同的内存地址:<type here> MyOtherObject2 = MyOtherObject1;
  • 我认为您的“问题”是虚构的。

标签: c# .net equality


【解决方案1】:

如果MyOtherObject1MyOtherObject2 是不同的对象,使MyClassInstance.MyProperty 等于它们,不会导致这两个相同。

MyClassInstance.MyProperty = MyOtherObject1;

这意味着对MyClassInstance.MyProperty 的任何更改都会更改MyOtherObject1,因为它们实际上指向相同的内存空间。

MyClassInstance.MyProperty = MyOtherObject2;

这意味着MyProperty 现在指向与MyOtherObject2 相同的内存空间。对MyProperty 的更改将不影响MyOtherProperty1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多