Как избежать лишних вычислений в конструкторах - PullRequest
2 голосов
/ 12 июня 2019

У меня есть такой конструктор:

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

f(x) не выставлен как член в базовом классе.Как мне избежать расчета f(x) дважды, если я не могу изменить C s базу?

1 Ответ

4 голосов
/ 12 июня 2019

Вы можете использовать два конструктора, например:

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

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...