2012-09-18 57 views
0

如果您在C#中使用相同的名稱並在相同的命名空間中,可以引用(不傳遞對象)從另一個類中創建的對象嗎?在多個類中引用對象的相同實例

就像說你有Main,Class A和Class B.在Main中你有「A ap = new A();」 如果您創建「A ap = new A();」在類B的內部,這兩個對象是否會引用對象A的同一個實例?所以,如果你改變了你的主對象「ap」中的一個值,它也會改變類B中的對象「ap」的相同變量。基本上,它們指向堆中的A類的同一個實例嗎?

+0

我不確定他們是否指向相同的對象,因爲它們使用相同的名稱引用相同的對象。我不這麼認爲,但我正在做一個班級任務,我們必須畫出一個程序的記憶圖像,我無法弄清楚某個變量是如何生效的,而這似乎是唯一的解釋。 – mwhite14

+0

名稱實際上是不同的。 Ap主要區別於B.ap或B.SomeMethod.Ap –

回答

3

每次使用new時,都會在堆上創建一個新對象,如名稱所示。 現在,如果您希望兩個類指向同一個對象,則可以將對象ap(或更具體地說,參考變量ap的值)傳遞到B類,並且它們將指向同一個對象。

+0

這就是我的想法。只是想確認。 – mwhite14

相關問題