首先想到的是System.TimeSpan,其中同一个类表示时间,您可以通过属性以不同的单位访问它。

您可以在内部以某个常量单位(可能是SI)存储该值,并将其转换为属性getter / setter:

Distance d = new Distance;

d.Meters = 5000;

var km = d.Kilometers; // km = 5;

或者您可以为每个单元创建类:

public sealed class DistanceUnit

{

public DistanceUnit(string name, string symbol, double scale)

{

Name = name;

Symbol = symbol;

Scale = scale;

}

public string Name { get; private set; }

public string Symbol { get; private set; }

public double Scale { get; private set; }

}

public abstract class Distance

{

protected Distance(double value)

{

this.Value = value;

}

protected Distance()

{

}

public double Value { get; set; }

public abstract DistanceUnit Unit { get; }

public override string ToString()

{

return this.Value + " " + Unit.Symbol;

}

public static void Convert(TIn original, out TOut result)

where TIn : Distance, new()

where TOut : Distance, new()

{

result = new TOut();

var scale = result.Unit.Scale / original.Unit.Scale;

result.Value = original.Value * scale;

}

}

public sealed class Meter : Distance

{

private static readonly DistanceUnit s_Unit = new DistanceUnit("Meter", "m", 1);

public Meter(double value) : base(value)

{

}

public Meter()

{

}

public override DistanceUnit Unit

{

get { return s_Unit; }

}

}

public sealed class Kilometer : Distance

{

private static readonly DistanceUnit s_Unit = new DistanceUnit("Kilometer", "km", .001);

public Kilometer()

{

}

public Kilometer(double value)

: base(value)

{

}

public override DistanceUnit Unit

{

get { return s_Unit; }

}

}

用得像

Meter distanceHome = new Meter(10000);

Kilometer distanceInKMs;

Distance.Convert(distanceHome, out distanceInKMs); // distanceInKMs.Value = 10

c 语言单位转换编程,单位转换程序相关推荐

  1. c 语言单位转换编程,《C语言及程序设计》实践参考——单位转换对照表

    返回:贺老师课程教学链接  项目要求 [项目3:单位转换对照表] 编程序生成一张从英尺到米的转换表(1米大约等于3.28英尺),以方便工厂里工人师傅使用.输出形式如下图所示,罗列了从0英尺到99英尺对 ...

  2. python单位转换编程英寸厘米_Python字节单位转换实例

    我就废话不多说了,直接上代码! from enum import Enum class Values(): values={'B':1} @staticmethod def getValues(): ...

  3. android 单位转换工具,Android单位转换----常用单位转换工具类

    前言 有一定开发经验的小伙伴肯定会发现这样一个问题,当我们用xml来写布局的时候,通常用的是dp.sp.(相信大家都知道为什么这样用).当我们用Java代码来创建View控件时,会发现方法接收的参数都 ...

  4. python单位转换编程_如何使用python编程将一组DNA序列转换为蛋白...

    我正在使用python创建一个程序,该程序将一组DNA序列转换为氨基酸(蛋白质)序列.然后,我需要找到一个特定的子序列,并计算存在该特定子序列的序列数.这是我到目前为止的代码: #Open cDNA_ ...

  5. python单位转换编程英寸厘米_第一个Python程序的单位转换,python,换算

    第一个python程序 humansize.py ,这个脚本定义了一个单一的函数,这个approximate_size()函数把一个精确到字节的文件大小计算成一个有漂亮格式(大约计算的)的大小. 脚本 ...

  6. 1032: 单位转换(1级)假设Laughing Sir希望全部采用公里计量,你可以帮他写出转换程序吗?已知1英里等于1.609公里。

    1032: 单位转换(1级) 时间限制: 1 Sec 内存限制: 128 MB 提交: 309 解决: 215 [提交] [状态] [讨论版] [命题人:admin] 题目描述 Laughing Si ...

  7. 解决SAP中单位转换问题

    SAP中的单位转换有时候弄的有点不顺手.在调用BDC的时候,发现了这个问题.如果输入英文单位,会提示单位在中文中没有创建.但是在表T006和T006A中均能找到此单位.可能是后台配置的问题.至今未找到 ...

  8. 至于你信不信,我反正是信了——以类为单位的编程思想

    一.打开和关闭数据库       你需要知道这么几个信息:你要连接的是哪台机器(机器名:SPXY-WYH):你要采取什么身份验证方式(Window身份验证方式,还是SQL Server身份验证方式): ...

  9. Android原生系统API自带dp、px、sp单位转换

    Android系统中自带的Api中可以使用TypedValue进行单位转换 1,调用系统api转换单位 // 获得转换后的px值 float pxDimension = TypedValue.appl ...

最新文章

  1. php ci hooks,CI框架 -- 核心文件 之 Hooks.php
  2. 【转】C# typeof()实例详解
  3. SoapUI工具中的用户名和密码如何用net代码实现传入
  4. SpringMVC框架--学习笔记(下)
  5. 【Qt】Qt中JSON简介
  6. 自定义控件复选框和单选框的实现
  7. mac下的git的安装与简单的配置
  8. 前端js实现中文转五笔和拼音首字母
  9. SPSS中文视频教程下载
  10. PDF如何加水印? PDF加水印的方法
  11. python怎样分析文献综述_文献综述实例评析
  12. Elasticsearch 集群报错 master not discovered yet
  13. 开源机器人SmallRobotArm机器人源码解读
  14. android内核函数,Android display架构分析三-Kernel Space Display架构介绍
  15. JPBC库应用之BLS签名
  16. mismatch详解
  17. SQL性能优化以及性能测试
  18. 花呗的24期利息计算器_花呗利息怎么算 利息计算器算一算花呗分期付款利率
  19. 电动尾门驱动芯片TMI8720-Q1,越来越多的电机已被应用到汽车上
  20. 跳槽字节跳动,十年开发经验Android架构师,灵魂拷问

热门文章

  1. 使用Python茅台抢购脚本的使用说明
  2. ROS入门:运行小海龟
  3. 一份 Git cheat sheet 送给您
  4. 《高效能人士的七个习惯》丨一本被书名耽误的必读好书
  5. LeCun称梯度下降是最优雅的 ML 算法,Marcus:我不同意!
  6. 自定义水印相机(watercamera)
  7. php 网页内容下载,如何使用PHP下载网页
  8. VC++网络安全编程范例(1)--数字证书有效期验证
  9. 如何updateR的version
  10. 浏览器在sandbox中没声音