属性 在 .NET C# 中重新评估 属性
Property re-evaluation in .NET C# property
我有下面的 属性 计算整数列表的总和。
public int OpponentTotalSetPoints => TeamPoints.Skip(1).Sum(t => t);
我的问题是 属性 每次调用时都会重新计算吗?如果是这样,下面的代码存储该值是否有益,这样每次调用时都不会进行求和?
private int? opponentTotalSetPoints;
public int OpponentTotalSetPoints
{
get
{
if (opponentTotalSetPoints.HasValue)
return opponentTotalSetPoints.Value;
opponentTotalSetPoints = TeamPoints.Skip(1).Sum(t => t);
return opponentTotalSetPoints.Value;
}
}
我会用这样的东西
private int? opponentTotalSetPoints;
public int OpponentTotalSetPoints
{
get
{
if (opponentTotalSetPoints==null)
if (TeamPoints.Count >1)
opponentTotalSetPoints = TeamPoints.Skip(1).Sum(t => t);
return opponentTotalSetPoints;
}
}
我有下面的 属性 计算整数列表的总和。
public int OpponentTotalSetPoints => TeamPoints.Skip(1).Sum(t => t);
我的问题是 属性 每次调用时都会重新计算吗?如果是这样,下面的代码存储该值是否有益,这样每次调用时都不会进行求和?
private int? opponentTotalSetPoints;
public int OpponentTotalSetPoints
{
get
{
if (opponentTotalSetPoints.HasValue)
return opponentTotalSetPoints.Value;
opponentTotalSetPoints = TeamPoints.Skip(1).Sum(t => t);
return opponentTotalSetPoints.Value;
}
}
我会用这样的东西
private int? opponentTotalSetPoints;
public int OpponentTotalSetPoints
{
get
{
if (opponentTotalSetPoints==null)
if (TeamPoints.Count >1)
opponentTotalSetPoints = TeamPoints.Skip(1).Sum(t => t);
return opponentTotalSetPoints;
}
}