我不認爲在返回一個新的陣列在你的吸氣時,是null
太多了。如果您在解析CSV的代碼中設置屬性,則會將其緩存起來。
換句話說,地方你應該有這樣的函數解析CSV數據(作爲一個例子,我已經把它放在RedirectionRule
類,但你可以有一個RedirectionRuleParser
類或類似的東西根據您的需要):
class RedirectionRule {
public static RedirectionRule Parse(string text) {
// some code here to parse text for your RedirectionRule object
}
public static RedirectionRule[] ParseCsv(string csv) {
string[] values = csv.Split(',');
RedirectionRule[] rules = new RedirectionRule[values.Length];
for (int i = 0; i < values.Length; i++) {
rules[i] = RedirectionRule.Parse(values[i]);
}
}
}
然後,如果你有這樣的地方的代碼,你是緩存中的數據:
string csv = "RuleType1,RuleType1,RuleType1";
RedirectionRules = RedirectionRule.ParseCsv(csv);
在其他地方,你要訪問您的緩存中的數據:
if (RedirectionRules != null) {
// do something with your cached data
} else {
// I don't know, throw an exception or something
}
您的示例代碼將創建你的財產的getter新RedirectionRule[MAXLENGTH]
陣列實現的唯一的事就是潛行過去的RedirectionRules != null
檢查以上,從而開放訪問數據的可能性,看起來像它已被緩存但實際上是空出來的。