【发布时间】:2012-06-21 10:16:15
【问题描述】:
我正在开发一个应用程序,在过去几年中由不同的程序员编辑过,我偶然发现了使用字符串文字访问 MenuItems 的问题。
例如:在很多地方都有类似的代码
mainMenu.MenuItems[1].MenuItems[0].Visible=true;
或
mainMenu.MenuItems["View"].MenuItems["FullScreen"].Visible=true;
如何更改用于标识 MenuItem 的字符串并捕获所有用于访问的位置?菜单和菜单项被声明为公共的,并在整个大型应用程序中使用
阻止使用这些魔法索引的正确方法是什么。我预见到每次添加新项目或更改名称时都会出现问题。
附:我已经开始使用枚举字典方法,其中每个 menuItem 都与一个键配对。但这仍然不会强迫其他开发人员使用我的实现,也不是问题 2 的最优雅的解决方案
【问题讨论】:
-
您不能强制魔术字符串不被其他开发人员使用,但您可以在开发人员会议上强调这种行为的负面影响,并在开发人员文档中突出显示应该避免这种行为。有许多有效的方法可以将这一点传达给整个团队。您甚至可以尝试将其纳入公司开发者指南!
标签: c# enums menuitem magic-numbers