干得好:
double distanceInKilometres = double.Parse("50");
double timeInHours = TimeSpan.Parse("00:02:04.05").TotalHours;
double speedInKilometresPerHour = distanceInKilometres / timeInHours;
Run Code Online (Sandbox Code Playgroud)
由于我不在编译器附近,您的里程可能会有所不同:)
简短的回答是:
int d = 50;
string time = "00:02:04.05";
double v = d / TimeSpan.Parse(time).TotalHours;
Run Code Online (Sandbox Code Playgroud)
这将以vkm/h 为单位给出velocity().
更面向对象的答案包括定义距离和速度的值对象类.就像TimeSpan是一个值对象一样,您可以封装距离的概念,而不考虑Distance类中的度量.然后,您可以添加方法(或运算符重载),而不是从TimeSpan计算速度.
像这样的东西:
Distance d = Distance.FromKilometers(50);
TimeSpan t = TimeSpan.Parse("00:02:04.05");
Speed s = d.CalculateSpeed(t);
Run Code Online (Sandbox Code Playgroud)
如果您只需要在代码中计算几个位置的速度,那么这种方法就会过度.另一方面,如果使用距离和速度是您域中的核心概念,那肯定是正确的方法.
| 归档时间: |
|
| 查看次数: |
4158 次 |
| 最近记录: |