Выделение подчиненных объектов через свойство

58
6

Я моделирую API для клиентского приложения. Как часть этого, я пытаюсь создать кеш, который поддерживает структуру/карту API, когда он обходит ее (я должен сканировать этот API, это именно так :()

Итак, что я хочу сделать, так это построить такой объект модели:

 page1
|
|__page2
|
|_page3

Поэтому, если каждая страница является объектом, и каждый объект содержит свойство для потомка, тогда у меня может быть повторяющийся набор классов, которые выглядят так:

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

Так page1.Child= page2, page2.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

Я получаю копию типа значения для ребенка. Итак, как я вместо этого выставляю член, чтобы вместо этого я мог работать с исходным объектом. Идея здесь заключается в том, что я не смогу работать на текущей странице кеша, не имея необходимости знать, где я нахожусь в кеше.

спросил(а) 2020-04-03T23:58:31+03:00 6 месяцев, 2 недели назад
1
Решение
81

Я могу напрямую получить доступ к значению этого ребенка.

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);
}

ответил(а) 2020-04-04T00:15:13.085262+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема