Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取包含类的实例_C#_Reflection_Reference - Fatal编程技术网

C# 获取包含类的实例

C# 获取包含类的实例,c#,reflection,reference,C#,Reflection,Reference,是否可以在不传递和存储引用的情况下从成员对象访问对象?在下面的示例中,给定的椅子对象是否可以访问房屋对象,而房屋不必将其引用向下传递到成员层次结构 public class Chair { public string Material { get; set; } public Chair() { Material = "Wood"; } public bool IsInMiami() { // Get instance of Hou

是否可以在不传递和存储引用的情况下从成员对象访问对象?在下面的示例中,给定的椅子对象是否可以访问房屋对象,而房屋不必将其引用向下传递到成员层次结构

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";
    }
}
公共课主席{
公共字符串材质{get;set;}
公共主席(){
材料=“木材”;
}
公共图书馆{
//获取找到椅子的房子的实例
豪斯豪斯=…//反射?
返回之家。城市。等于(“迈阿密”);
}
}
公共教室{
私人名单——主席;
公共房间(){
_主席=新名单();
_椅子。添加(新椅子());
} 
}
公屋{
私人房间清单;
公共字符串City{get;set;}
酒店(){
_房间=新列表();
_房间。添加(新房间());
城市=“奥兰多”;
}
}
答案可能是通过反思,但我不知道如何去做,或者有没有其他方法可以达到同样的效果


提前感谢

如果椅子没有提到房子,那就没办法做到这一点。从椅子的角度来看,它和房子之间没有关系。事实上,这把椅子可能属于许多房子,也可能不属于任何房子。

首先,这是一个真实问题的例子,还是只是一个学习的例子


检查房屋位置肯定不是主席的责任。如果你想找到迈阿密所有的椅子,你必须遍历整棵树或给它一个参考

同意@lukas,此外,如果你的忙碌规则要求(比如)找到椅子的地址,那么最好有一个指向父对象的链接,而不是使用反射。是否有任何意义:如果
房子
对象不能通过其引用,为什么
椅子
对象有机会获得该引用?我想不应该。