以下のようにオーバーロードされたコンストラクタ間でコードを複製したくありません。どのように私はそれをリファクタリングするのですか?これらのオーバーロードされたクラスコンストラクタをどのようにリファクタリングするのですか? (C#)
/// <summary>
/// Represents a pseudo-random number generator, a device that
/// produces a sequence of numbers that are normally distributed.
/// </summary>
public class NormalDeviate : UniformDeviate
{
double mean;
double standardDeviation;
double storedValue = 0d;
/// <summary>
/// Initializes a new instance of the <see cref="NormalDeviate"/> class.
/// </summary>
/// <param name="mean">The mean.</param>
/// <param name="standardDeviation">The standard deviation.</param>
/// <param name="seed">The seed.</param>
public NormalDeviate(double mean, double standardDeviation, ulong seed)
: base(seed)
{
this.mean = mean;
this.standardDeviation = standardDeviation;
}
/// <summary>
/// Initializes a new instance of the <see cref="NormalDeviate"/> class.
/// </summary>
/// <param name="mean">The mean.</param>
/// <param name="standardDeviation">The standard deviation.</param>
public NormalDeviate(double mean, double standardDeviation)
: base()
{
this.mean = mean;
this.standardDeviation = standardDeviation;
}
}
あなたの例では、同じ3パラメータのコンストラクタのうちの2つを提供し、2パラメータのコンストラクタをミス。 – jasonh
私の悪いです。コードを修正しました。私の間違いを指摘してくれてありがとう。 – SolutionYogi
あなたの例では、0パラメータをベースコンストラクタに送信します。これは、0パラメータで呼び出す場合とまったく同じではありません。 –