あるファイル内の値にアクセスする必要があると仮定すると、メソッド内で少数のブール値を含むことができますファイルを呼び出すのが適切かどうかを判断するメソッドの戻り値内のファイルから得られた値を保持する
私はファイルconfig.cfgを持っていると言います。
string/name>max|
bool/adult>yes|
int/age>20|
"max"
の値を返すgetUserName()
方法:そのファイルに、3つの値が存在します。これは、ファイルを呼び出すことによってこれを行います:
using (StreamReader reader = new StreamReader(path))
{
//get line beginning with string/name here
return //string value containing name
}
のは、私がname
数倍の値だけでなく、値isAdult
とclientAge
を使用する必要があると仮定しましょう。ファイルに何度も何度もアクセスするのではなく、要求された値を静的変数の何らかの形で保存する方がはるかに簡単です。ただし、この変数は、メソッドが最初に呼び出されたときに、少なくとも1回は値を変更する必要があります。
の中でgetUserName()
の方法を使用できますか?
さらに、このアイデアはOOPの範囲内でも可能ですか? Prefetchと同様のコンセプトですか?
ファイルを解析し、その値をプロパティとして持つシングルトンクラスを作成したい場合があります。クラスに初めてアクセスするときにファイルをロードし、その後はアクセス権がメモリに格納されます。 – juharr
なぜ静的なものではないのですか?初期値はnullです。シンプルでクリーンな、そして純粋主義者が言うことにもかかわらず、静的変数の使用が適切です(実際にはC#言語定義の意図的な意図です)。 – Rob
@Robこれは、クラス内に追加のオブジェクトが必要なためです。私は、 'Name'のための別個の値を作るのではなく、必要に応じて、単一のメソッドの中ですべてをやろうとしています。つまり、ファイルに含まれるデータの一部を必要としない関数を実行している場合、アクセスする必要はありません。参考:ここでは、組み込みプラットフォームをターゲットにしています。したがって、合理化の必要性があります。 –