如果主題名稱與我的問題不匹配,我非常抱歉。我一直在谷歌它,但我不知道如何我的「問題」被稱爲:(從其他對象屬性設置對象屬性問題
我認爲這是一個非常基本的問題,但我認爲這是重要的理解 首先我'會顯示代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
A a = new A();
a.x = 5;
a.y = 41;
B b = new B();
b.a = 14;
b.b = a.y;
b.c = a;
a.x += 10;
a.y -= 30;
}
}
class A
{
public int x;
public int y;
}
class B
{
public int a;
public int b;
public A c;
}
}
我有一些非常基本的類A和B. B可容納A的實例中的「問題」我有,就是: 如果通A到B,並設置A的一個屬性(a.y -= 30;
)b.b
的值也會發生變化,我怎樣才能避免這種情況? 我只是想的值爲a.y
。但是如果a.y
c絞刑,b.b
不應該! 是唯一的方法來做到這一點,創建一個克隆的對象,然後通過它?
你實際上意味着要** ** b.c(不b.b)保持不變時a.y的值更改? –
你是不是指傳遞給b後:'b.c = a;'然後做'a.y - = 30'b.c.y'的值也改變了嗎? – ub1k
改變'b.c.y'的值也會改變'a.y'的值。 我想這就是你的意思 –