J'ai une classe dans mon application qui traduit les jetons de chemin en chemins complets. Par exemple: il peut prendre une chaîne comme "%MYAPPDATA%"
et renvoyer C:\Users\user.DOMAIN\AppData\Raoming\MyApp
.Devrais-je conserver les données de cette application?
Alternativement, la classe a une surcharge à la fonction qui peut prendre une énumération au lieu d'une chaîne. Par exemple: il peut prendre l'enum AppPaths.MyAppData
et renvoyer C:\Users\user.DOMAIN\AppData\Raoming\MyApp
.
J'ai besoin de stocker la "table de recherche" quelque part, mais je ne suis pas sûr de la meilleure méthode ou structure. Dois-je utiliser un ensemble de données et écrire la table sur le disque? Ou juste garder en mémoire?
Une valeur de chemin unique peut correspondre à une chaîne et à une énumération. Je suppose que je peux juste garder un tableau en mémoire dont l'index correspond à la valeur entière de l'enum et faire une recherche dans le tableau quand on me passe une chaîne.
Pensées?
je devrais construire le tableau lorsque l'objet est construit alors? –
Oui, c'est l'approche que je prendrais. Si vous ne voulez pas écrire le code pour rechercher des correspondances, examinez le type Liste ou, mieux encore, la version générique de Dictionary. Vous aurez toujours besoin d'une fonction pour faire des comparaisons, mais elles sont assez faciles. –
Encore une question - le traducteur est une sorte d'utilitaire donc je l'ai fait construire comme une classe statique qui avait une grande déclaration de cas. Maintenant que je dois garder la table de recherche en mémoire, devrais-je rendre l'état partagé de la table ou rendre la classe non statique? –