|
分類:[C#]
Visual Studio 2008 C#をはじめて1ヶ月の初心者です。
現在、Form画面に表示されている文字を多国語対応にする為に、 日本語と他国語の対応ファイルを作成し、そのファイルから文字列をコレクション配列に読込み、 画面の文字を置き換えるクラスを作成しました。(Dispクラス)
このクラスをそれぞれのForm.Load()でNewし、画面の文字を置き換えていますが、 Newのたびにメモリーが確保されているとしたら、無駄だなーと思い質問させていただきました。
そこで、質問です。 1.上記の場合、Newするたびに、ファイルを必ず読み出しているのでしょうか? (キャッシュなどに入っていて必ずしもアクセスは行っていないのでしょうか?) (HDのLEDを見ていると、必ず光っているわけではありませんでした。)
2.親Form→子Form→孫FormとFormを開く毎にメモリー空間を占有していっているのでしょうか? (タスクマネージャーで確認しても、必ずメモリー空間を占有しているようには見えませんでした。)
3.どのタイミングでDispクラスで占有してるメモリー空間は開放されるのでしょうか? (タスクマネージャーではいつ開放されるタイミングが一定ではなく、よくわかりませんでした。)
4.このような場合、どのように対応していくのがC#としてベストな方法なのでしょうか? (グローバル変数で対応するのは、オブジェクト指向ぽっくないような気がするし、 かといって、毎回Newするのも速度やメモリースペース的に、ベストではないような気もします。)
是非教えてください。 宜しくお願いします。
|