gpt4 book ai didi

c# - 如何与很多人建立自引用(自反)关系?

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:25 24 4
gpt4 key购买 nike

我有这些类(class):

MenuComponent
MenuContainer

MenuContainer 可以看作是一个菜单。菜单有很多元素。但是一个菜单可以包含在另一个菜单中。

我想坚持这个,但我不知道最好的方法:

namespace menu_builder_rbac {

public abstract class MenuComponent {

[Key]
public int MenuComponentId { get; set; }

public string DisplayName { get; set; }

public string Name { get; set; }

public string HtmlId { get; set; }

public string HtmlCssClass { get; set; }

public string Url { get; set; }

public string IconUrl { get; set; }

public bool Equals(MenuComponent menuComponent) {
return (this.MenuComponentId == menuComponent.MenuComponentId) || (this.Name == menuComponent.Name);
}

}

public class MenuContainer : MenuComponent {

public ICollection<MenuComponent> MenuComponentMenuContainer { get; set; }

}

}

最佳答案

菜单本质上是树。您的 MenuComponent 相当于一个节点。每个节点都可以有其他 MenuComponent 作为子节点。我真的没有看到 MenuContainer 的必要性,除非您想将它用作根 MenuComponent 的顶级存储。

所以你的类看起来像:

public class MenuContainer
{
public ICollection<MenuComponent> Menus { get; }
}

public class MenuComponent
{
....
public ICollection<MenuComponent> ChildMenus { get; }
}

关于c# - 如何与很多人建立自引用(自反)关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40092854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com