2012-09-14 143 views
4

是否可以從成員對象訪問對象而不傳遞和存儲引用?在下面的例子中,一個給定的椅子對象是否可以訪問房屋對象,而房屋不必將其引用傳遞給成員層次結構?獲取包含類的實例

public class Chair { 
    public string Material { get; set; } 

    public Chair() { 
     Material = "Wood"; 
    } 

    public bool IsInMiami() { 
     // Get instance of House where chair is found 
     House house = ... // Reflection? 
     return house.City.Equals("Miami"); 
    } 
} 

public class Room { 
    private List<Chair> _chairs; 

    public Room() { 
     _chairs = new List<Chair>(); 
     _chairs.Add(new Chair()); 
    } 
} 

public class House { 
    private List<Room> _rooms; 
    public string City { get; set; } 

    public House() { 
     _rooms = new List<Room>(); 
     _rooms.Add(new Room()); 
     City = "Orlando"; 
    } 
} 

答案可能是通過反射,但我沒有線索如何做到這一點,或有另一種方式來達到同樣的事情。

在此先感謝

+0

是否有任何意義:如果'House'對象不能傳遞它的引用,爲什麼'Chair'對象有任何機會獲取該引用?我想它不應該。 – horgh

回答

4

有沒有辦法做到這一點,而不必衆議院參考主席。從主席的角度來看,它與衆議院沒有任何關係。事實上,主席可以屬於很多房屋,或者不屬於房屋。

2

首先,這是一個真正的問題或僅僅是學習目的的例子嗎?

這絕對是不是沙裏的責任,檢查房子的位置。如果你想在邁阿密找到所有椅子,你必須遍歷整棵樹或給它一個參考。

+0

同意@lukas,此外,最好有一個鏈接父對象,而不是使用反射,以防萬一你的繁忙規則需要,比如說找到椅子的地址。 – Felix