このクラス定義は少し奇妙だと思います: http://www.extremeoptimization.com/Documentation/Reference/Extreme.Mathematics.LinearAlgebra.SingleLeastSquaresSolver_Members.aspx
Solve メソッドには戻り値がありますが、Solution プロパティでも結果を取得できるため、その必要はありません。
これは、私が従来のコードと見なしているものです。
var sqrt2 = Math.Sqrt(2)
これは、リンクのソルバーと同じ精神の代替手段になります。
var sqrtCalculator = new SqrtCalculator();
sqrtCalculator.Parameter = 2;
sqrtCalculator.Run();
var sqrt2 = sqrtCalculator.Result;
2 番目のバージョンが少し「非伝統的」であること以外に、長所と短所は何ですか?
はい、コンパイラーは、いくつかのプロパティ (パラメーター) を割り当てるのを忘れたユーザーを助けませんが、これは、書き込み可能なプロパティを含み、コンストラクターに必須の値を持たないすべてのコンポーネントに当てはまります。
はい、スレッド化は機能しませんが、各スレッドは独自のソルバーを作成できます。
はい、ガベージ コレクターはソルバーの結果を破棄できませんが、ソルバー全体が破棄された場合は破棄されます。
はい、コンパイラとプロセッサには、パラメータと戻り値の特別な処理があり、高速になりますが、パラメータ処理の時間はほとんど無視できます。
等々。他のアイデア?