インデクサーは常に個別のシーケンスを参照する必要がありますか? いいえと思いたいところですが、他の方の意見をお聞きしたいです。
質問は、多項式クラスで「ショートカット」が作成された後に始まりました。
Polynomial p = new Polynomial(coefficients);
y = p(5.2) を計算する通常の方法は、次のメソッド呼び出しを使用することでした。
double y = p.Evaluate(5.2);
(double 型のインデクサーを使用して) 作成されたショートカットは次のとおりです。
double y = p[5.2];
多項式 (連続関数) は、意味があれば、一種のアナログ配列または連続配列と見なされているという考えだったと思います。ただし、Evaluate 関数はインターフェイス IMathFunction から取得されます。このインターフェイスは、補間クラスでも使用されます。
CubicSplineInterpolator f = new CubicSplineInterpolator(arrayOfPoints)
補間クラスには、補間に使用されるポイントの配列にアクセスするための int 型のパブリック インデクサーが既にあるため、ここで問題が発生します。インターポレーターは (制限内で) 連続関数のように機能しますが、ショートカットがすべての IMathFunction クラスに展開されると、f[5.0] と f[5] は異なるオブジェクトを返し、コードを読むときに混乱する可能性があります。
double y;
Point<double> p;
// ... some other code
CubicSplineInterpolator f = new CubicSplineInterpolator(arrayOfPoints)
y = f[5.0];
p = f[5];
double 型のインデクサーのこの使用について心配する必要がありますか、それともこれを使用する必要がありますか?