首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于字段单位转换的C#隐式get

用于字段单位转换的C#隐式get
EN

Stack Overflow用户
提问于 2018-06-13 03:23:02
回答 1查看 35关注 0票数 0

我想为我的商店系统正确地处理给定值(例如双精度)的单位。

在数据库中,它是全局配置的,实际使用的是哪个单元。基本单元由全局配置设置。

现在,我喜欢从模型中获取值的最隐含的方法。

我想要避免的是:

代码语言:javascript
复制
    public class BadWay
    {
        private double _width;
        public double Width
        {
           get { return LengthConverter.Convert(_width, GlobalConfig.LengthConversionFactor); }
           set { _width = value; }
        }
      }

我真正喜欢的是:

代码语言:javascript
复制
    [LengthUnit]
    public double Width { get; set; }

    [WeightUnit]
    public double Weight { get; set; }

在属性中,所有内容都是为了转换而处理的。我已经看到一场讨论,认为这是一种糟糕的方式。

我真的很想知道您对此的想法/库/解决方案。

EN

回答 1

Stack Overflow用户

发布于 2018-06-13 03:50:02

我认为这一切都归结于设计原则。是的,你可以按照你的想法去做,但是你仍然会在一些转换中添加一个库或者硬编码。

设计的一个常见问题是,我们喜欢把事情过于简单化。你的属性可以被认为是双精度的,但这并不是它们真正的本质,它们是单元。

然后,您可以为上面提到的每种类型的单元创建一个类

代码语言:javascript
复制
public LengthUnit Width { get; set; }

public WeightUnit Weight { get; set; }

每个unit类都可以从一个接口继承,该接口提供您需要的任何东西,比如Unit factor或转换为另一个单元。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50824404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档