【问题标题】:How to avoid redundant computation in constructors如何避免构造函数中的冗余计算
【发布时间】:2019-06-12 08:14:02
【问题描述】:

我有一个这样的构造函数:

C(T x) : base(f(x))
{
   ...
   do something with f(x)
   ...
}

f(x) 不作为基类中的成员公开。如果无法修改Cs 基数,如何避免计算两次f(x)

【问题讨论】:

  • “f(x) 没有作为基类中的成员公开”到底是什么意思?
  • 我的意思是没有我可以直接访问的具有值 f(x) 的 base 成员。无论如何,@DavidG 已经确定了,一旦计时器到期,我就会接受他的回答。

标签: c# constructor


【解决方案1】:

你可以使用两个构造函数,例如:

private C(WhateverFReturns x) : base(x)
{
    //do something with x
}

public C(T x) : this(f(x))
{

}

【讨论】:

  • 好主意!!
猜你喜欢
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-02
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多