假設我需要訪問包含在給定文件中的值,從不同的方法中可以在方法中包含某種布爾值確定是否適合調用該文件?在方法的返回值內保留從文件獲得的值
可以說我有文件config.cfg。在該文件中,有三個值:
string/name>max|
bool/adult>yes|
int/age>20|
getUserName()
返回"max"
值的方法。這是通過調用文件:
using (StreamReader reader = new StreamReader(path))
{
//get line beginning with string/name here
return //string value containing name
}
假設我需要使用name
幾倍的價值,以及價值isAdult
和clientAge
。而不是一遍又一遍地訪問文件,可能會更容易將請求的值以某種形式的靜態變量保存。但是,該方法首次調用時,該變量至少需要更改一次。
我可以這樣做裏面的的方法getUserName()
?
此外,這個想法甚至可能在面向對象的範圍內?這與Prefetch類似嗎?
您可能希望創建一個解析文件並將這些值作爲屬性的單例類。第一次訪問該類時,它將加載該文件,然後在將來的訪問將在內存中。 – juharr
爲什麼不是靜態的,並將其設置爲初始值null。簡單,乾淨,儘管純粹主義者認爲這是一個合適的(實際上是c#語言定義的特別設計意圖)使用靜態變量。 – Rob
@Rob,因爲這需要類中的其他對象。我試圖在單個方法中做所有事情,並且在需要的時候,而不是爲'Name'創建一個單獨的值。這意味着如果我正在執行的功能不需要文件中包含的某些數據,我不必訪問它。僅供參考我在這裏瞄準嵌入式平臺,因此精簡的必要性。 –