首页 新闻 会员 周边

关于自定义数据类型

0
悬赏园豆:10 [已关闭问题]

目前这个系统涉及到很多数据类型,如温度、压力等等,虽然都是double类型但他们都必须在一个区间内,现在拿不准是自定义一种数据类型来做控制他们的范围还是直接写函数来控制他们的范围;新的数据类型的话使用起来不方便(需要写函数来赋值,然后用函数来取值),但他能保证准确性,比方压力跟压力相加,如果都是double类型可能导致压力跟温度相加了;直接用函数控制的话那基本是每个数据都要验证,工作量比较大。希望大家提供一些好的方案。

Sgvon的主页 Sgvon | 菜鸟二级 | 园豆:202
提问于:2010-07-26 11:13
< >
分享
其他回答(2)
0

用类的属性啊,在给属性赋值的时候可以判断啊

dege301 | 园豆:2825 (老鸟四级) | 2010-07-26 12:46
那样太麻烦了,以温度值类型为例,每个用到温度的属性都得验证一次,并且属性还不知如何终止程序的执行;其二,以后可能会给温度值加单位或者其他的一些处理。
支持(0) 反对(0) Sgvon | 园豆:202 (菜鸟二级) | 2010-07-26 14:00
@Sgvon:终止程序没问题的吧,可以抛出异常在外面捕获;针对第二点那就更应该用类了,很符合面向对象思想啊。
支持(0) 反对(0) dege301 | 园豆:2825 (老鸟四级) | 2010-07-26 20:15
0

如果仅仅为了保持变量的值,并作比较简单的判断,那么感觉还是使用属性来实现比较好。代码比较简洁,通过一些事件定制如:PropertyChangedEvent能够完成基本的校验(如判断值的合法性)工作。但是如果这个属性不仅仅要完成简单的数据校验,还涉及到一些复杂的逻辑,那么使用单独的数据结构应该好些。

镜涛 | 园豆:575 (小虾三级) | 2010-07-26 13:03
用单独的数据结构,虽然比较好控制单操作起来又麻烦了一些,并且如果这个服务还提供给别人,那这些自定义的数据结构别人来操作显得不友好。
支持(0) 反对(0) Sgvon | 园豆:202 (菜鸟二级) | 2010-07-26 14:03
0

如果是专业领域,我倾向于你提出的自定义数据类型,通过重载 = ,+,- 等操作符来实现同类型数据操作,该方式能够让你将使用double,int等基本数据类型的语法习惯沿用至你的自定义数据类型.

Launcher | 园豆:45045 (高人七级) | 2010-07-26 13:04
是的,开始就是考虑到运算符重载后,这样操作起来不会出错,但对使用者而言,赋值取值比较麻烦,不知还有更好的建议?
支持(0) 反对(0) Sgvon | 园豆:202 (菜鸟二级) | 2010-07-26 14:04
@Sgvon:不存在你说的问题,请查看 Decimal 的实现方式.
支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2010-07-26 15:14
@Galactica: 可以直接给新定义的数据类型赋值 但怎么控制这个值只能在某个范围内,如果不在就终止程序,目前我还没找到比较好的方法。
支持(0) 反对(0) Sgvon | 园豆:202 (菜鸟二级) | 2010-07-26 15:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册