【发布时间】:2017-11-10 19:15:59
【问题描述】:
我有以下代码。关于哪种方法对内存性能更好,我们有过争论。如果我们不使用单独的变量并使用它,它会有什么不同吗?它会影响那么这是可能的解决方案吗?
/// <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;
}
}
或
/// <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;
}
}
谢谢。
【问题讨论】:
-
测试、测试、基准测试和测试。只有这样你才能得到具体的答案。除此之外,最佳实践问题不在此处讨论。
-
如果您编写“字符串类型”代码,那么担心性能通常还为时过早......通常人们会期望属性的不同行为 -
x.p = v; AssertTrue(x.p == v)对于所有v与帖子中显示的代码进行了一些奇怪的转换,并且很少满足设置属性更改其值的条件。 -
第二个 sn-p 在我看来是不费吹灰之力的。以相同的方式拆分相同的字符串 5 次而不是 1 次对我来说似乎很荒谬。
标签: c# memory-management heap-memory fragmentation stack-memory