インデクサーは常に離散シーケンスを参照すべきですか? 私は「いいえ」と思うように誘惑されますが、私は他の人が何を考えているか質問したいと思います。インデクサーは常に離散シーケンスを参照すべきですか?
「ショートカット」が多項式クラスで行われた後に質問が開始されました。 (double型のインデクサを使用して)
double y = p.Evaluate(5.2);
ショートカットなされたものであった:
Polynomial p = new Polynomial(coefficients);
Yを計算する通常の方法は、(5.2)Pは=は、次のメソッド呼び出しを使用することであった
double y = p[5.2];
多項式(連続関数)が一種のアナログ配列または連続配列と見なされていると思います。ただし、Evaluate関数はIMathFunctionインターフェイスから提供されます。このインタフェースは、補間クラスで使用されます。
CubicSplineInterpolator f = new CubicSplineInterpolator(arrayOfPoints)
補間クラスはすでに補間に使用されるポイントの彼らの配列にアクセスするには、int型の公共インデクサーを持っているので、問題はここにあります。インターポレータは(1つの範囲内で)連続関数のように動作することができますが、ショートカットがすべての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型のインデクサーのこの使用を心配するか、これは、彼らがために使用されるべきものであるべきか?
まあ、それは悪い考えで、あなたはなぜそれを見つけましたか? –
私は問題は、補間器が点の離散配列と連続したアナログ配列として同時に見ることができないことです。これは混乱の権利ですか? – Ben
@Hans Passantこれは 'f.Evaluate(5.0)'と 'f.Evaluate(5)'とどう違うのですか?私は結論に同意しないが、... –