public Num CalcDamage() { if (cached.HasValue && UseCache) { return(cached.Value); } var result = Base; foreach (var more in More.Concat(new[] { Increased })) { result = result * (1 + more); } return((cached = result).Value); }