0
我有以下代碼。我們曾經爭論過哪種方法更適合於內存性能。如果我們不使用單獨的變量並使用它,它會有所作爲嗎?它會影響到那麼這是可能的解決方案?內存性能的最佳實踐
/// <summary>
/// Treatment Point Types
/// </summary>
public string DWTreatment
{
get
{
StringBuilder sbStatus = new StringBuilder();
.........
}
set
{
chkTreatSR.Checked = value.Split(',').Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.SR).ToString());
chkTreatIT.Checked = value.Split(',').Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.IT).ToString());
chkTreatEP.Checked = value.Split(',').Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.EP).ToString());
chkTreatWW.Checked = value.Split(',').Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.WW).ToString());
chkTreatQC.Checked = value.Split(',').Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.QC).ToString());
isSelectionSetByPage = true;
}
}
OR
/// <summary>
/// Treatment Point Types
/// </summary>
public string DWTreatment
{
get
{
StringBuilder sbStatus = new StringBuilder();
.........
}
set
{
var values = value.Split(',');
chkTreatSR.Checked = values.Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.SR).ToString());
chkTreatIT.Checked = values.Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.IT).ToString());
chkTreatEP.Checked = values.Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.EP).ToString());
chkTreatWW.Checked = values.Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.WW).ToString());
chkTreatQC.Checked = values.Contains(((int)AgencyListReportTemplate.SamplingPointTypesEnum.QC).ToString());
isSelectionSetByPage = true;
}
}
感謝。
測試,測試,基準測試。這是唯一的你會得到一個具體的答案。除此之外,最佳實踐問題在這裏脫離主題。 – DavidG
如果你編寫「字符串類型」的代碼,一般來說,擔心性能通常有點太早了...通常,人們會期望不同的屬性 - 'x.p = v; AssertTrue(x.p == v)'表示所有'v'與代碼中顯示的代碼之間存在一些奇怪的轉換,很少滿足設置屬性更改其值的條件。 –
在我看來,第二個片段是一個不容忽視的內容。以同樣的方式分割相同的字符串5次而不是1次對我來說似乎很荒謬。 – itsme86