2011-07-06 8 views
3

私はC#でいくつかの数値解析作業を開始しようとしていますが、オペレータのオーバーロードやクラスを使用することを検討していました。たとえば、Distance,SpeedAccelerationなどを適切に定義された演算子オーバーロードとともに使用して、予想されるようにクラスライブラリの距離、速度、加速度などがC#にありますか?

speed = distance/time 

が振る舞うだろうが、

acceleration = distance/time 

がコンパイル(または少なくとも例外をスロー)ないように、許可され、すべての誤解のものは禁止されます。

私はこれを望む最初の人になることはできませんので、誰かが適切なライブラリを利用できるかどうか知りたいのですか?

+0

これはF#です(したがって答えはありません)が、F#の測定単位に興味があるかもしれません。 http://msdn.microsoft.com/en-us/library/dd233243.aspxおよびhttp://blogs.msdn.com/b/andrewkennedy/archive/2008/08/29/units-of-measure-in- f-part-one-introducing-units.aspxである。それはあなたの問題を解決しますが、F#を使わなければなりません。また、http://stackoverflow.com/questions/348853/units-of-measure-in-c-almostを参照してください – Ray

+0

私はあなたがこれのためのメソッドを実装する方が良いと思う、すなわち。 'GetSpeed(double distance、double time){戻り距離/時間; } '。あなたがここで示唆しているのは、必要以上に複雑なものにすることだけです。 –

+0

これらの例はすべて、その速度が実際にベクトルであることを無視しています。 –

答えて

0

私はあなたのは

public class MathEntity { /*Operators overlaoding */} 
public class Distance : MathEntity { /*Implementation*/} 
public class Time : MathEntity {/* Implementation*/} 

は、この情報がお役に立てば幸い言わせて、新しい型を定義することによって、この目標を達成することができると思います。

+0

それは彼が質問で言ったことです。彼は図書館があるかどうか尋ねているので、自分でそれをする必要はありません。 – Ray