私は過去数年にわたってさまざまなプログラマーによって編集されたアプリケーションに取り組んでおり、文字列リテラルを使用してMenuItemsにアクセスする際の問題に遭遇しました。
例:多くの場所に次のようなコードがあります
mainMenu.MenuItems[1].MenuItems[0].Visible=true;
また
mainMenu.MenuItems["View"].MenuItems["FullScreen"].Visible=true;
MenuItemを識別し、アクセスに使用されているすべての場所をキャッチするために使用される文字列を変更するにはどうすればよいですか?メニューとmenuitemsはパブリックとして宣言され、この大規模なアプリケーション全体で使用されます
これらのマジックインデックスの使用を防ぐ正しい方法は何ですか。新しいアイテムが追加されたり、名前が変更されたりするたびに、物事が壊れることを予見しています。
PS私は、すべてのmenuItemがキーとペアになっている列挙型辞書アプローチの使用を開始しました。しかし、これでも他の開発者に私の実装を使用させることはなく、質問2に対する最も洗練されたソリューションでもありません。