通过属性公开子对象

时间:2017-10-11 19:42:20

标签: c# properties

我正在为客户端应用程序建模API。作为其中的一部分,我尝试构建一个缓存,在爬行时维护API的结构/映射(我必须抓取此API,就是这样:()

所以我想做的是建立一个这样的模型对象:

 page1
  |
  |__page2
        |
        |_page3

因此,如果每个页面都是一个对象,并且每个对象都包含一个子属性,那么我可以拥有一组重复的类,看起来像:

public class Page
{
   public Page Child { get; set; }
}

所以page1.Child = page2page2.Child = page3

在我构建Cache的课程中,我希望公开当前页面,如:

public class Cache
{
   public Page CurrentPage { get; set; }

   public Cache(){
      //logic to construct cache
   }
   // add, delete Page logic
}

所以,如果我加载我的CurrentPage变量,如:   cache.CurrentPage = page1.Child.Child

我将获得该孩子的价值类型副本。那么我该如何公开成员以便我可以对原始对象进行操作。这里的想法是,我不能在高速缓存的当前页面上工作而不必实际知道我在缓存中的位置。

1 个答案:

答案 0 :(得分:0)

我可以像这样直接访问孩子的价值。

public class Page
    {
        public Page Child { get; set; }
        public string PageNumber { get; set; }
    }
    private static void Main()
    {
        var page1 = new Page {PageNumber = "1"};
        var page2 = new Page {PageNumber = "2"};
        var page3 = new Page {PageNumber = "3"};
        page1.Child = page2;
        page2.Child = page3;

        var x = page1.Child.Child.PageNumber;

        Console.WriteLine(x);
    }