私はパストークンを完全修飾パスに変換するアプリケーション内のクラスを持っています。たとえば、"%MYAPPDATA%"
のような文字列を取り、C:\Users\user.DOMAIN\AppData\Raoming\MyApp
を返すことができます。このアプリケーションデータを保持する必要がありますか?
また、クラスには関数のオーバーロードがあり、文字列の代わりに列挙型を取ることができます。たとえば、列挙型はAppPaths.MyAppData
、戻り値はC:\Users\user.DOMAIN\AppData\Raoming\MyApp
です。
"ルックアップテーブル"をどこかに保存する必要がありますが、どのような方法や構造が最適かわかりません。データセットを使用してテーブルをディスクに書き込む必要がありますか?それとも記憶に残っているのか?
単一パスの値は、文字列と列挙型にマップできます。私はインデックスを列挙型の整数値にマップし、文字列を渡すときに配列を検索するメモリを持つことができます。
思考?
ちょうど思考... - だから、あなたはおそらく、すべてのユーザーが自分のAppDataがどこにあるか知っているので、「ルックアップテーブル」を取り除くことができ
? –
ええ - それは私が取るアプローチです。一致を検索するためのコードを記述しない場合は、リストタイプ、またはより一般的な辞書の辞書を調べてください。比較を行うためにはまだ関数が必要ですが、かなり簡単です。 –
もう1つの質問 - 翻訳者はユーティリティのようなものなので、大文字のステートメントを持つ静的クラスとしてビルドしました。テーブルの共有状態を作成するか、クラスを非静的にする必要があるので、ルックアップテーブルをメモリに保持する必要があります。 –