C# 创建静态菜单属性

C# 创建静态菜单属性,c#,static-methods,C#,Static Methods,我正在尝试创建一个菜单类,我可以在代码中添加菜单项,然后通过静态属性调用子项 我的想法是: var myMenu = new Menu(); myMenu.Add("Articles"); myMenu.Add("Customers"); // now call the item via... _navigation.NavigateTo(Menu.Articles); // or add further subitems Menu.Customers.Add("International"

我正在尝试创建一个菜单类,我可以在代码中添加菜单项,然后通过静态属性调用子项

我的想法是:

var myMenu = new Menu();
myMenu.Add("Articles");
myMenu.Add("Customers");

// now call the item via...
_navigation.NavigateTo(Menu.Articles);

// or add further subitems
Menu.Customers.Add("International");

C#可以构建这样的属性吗?

您可以为此创建静态属性。您需要将实例存储在静态属性中。它们不能动态创建。如果您想动态地访问它们,您应该创建类似于
字典的东西来按名称访问实例

public class Program
{
    static void Main()
    {
        MyMenu = new Menu();
        Articles = myMenu.Add("Articles");
        MyMenu.Add("Customers");

    }

    public static Menu MyMenu {get; private set;}
    public static MenuItem Articles { get; private set;}
}

您可以选择是否要访问
菜单
菜单项
。您可以使用
Program.MyMenu
Program.Articles
等来访问它们。

还不能对问题进行评论,但请尝试在这里查找,我想我将使用您提到的预定义静态属性。使用ExpandoObject的想法看起来很不错,但是当我需要读取Expando属性时,我必须将菜单对象强制转换为
动态
,因此intellisense不再喜欢它了。。。