【问题标题】:Convert type in set & get c#在 set 中转换类型并获取 c#
【发布时间】:2019-10-04 02:40:42
【问题描述】:

我想知道类定义部分的类型转换。例如,是否可以在 get/set 部分从 long 转换为 decimal?

【问题讨论】:

标签: c# type-conversion getter-setter


【解决方案1】:

只需投射

get => (decimal)someLong;

【讨论】:

    【解决方案2】:

    是的,可以在 c# 代码的任何地方进行类型转换。如果属性 get/set 只能执行单个值返回/分配,那么就不需要它们/您根本没有机会编写它们; c# 团队会做到这一点,所以编译器会为你做它作为一个快捷方式

    这是一个例子:

    private long _backingField = 0;
    public decimal PropertyName{
      get{
        return Convert.ToDecimal(_backingField);
      }
    }
    

    有点好奇你为什么要打扰;通过创建一个属性,您是在说“使用此属性的开发人员必须提供/期望一个小数” - 为什么然后将它存储在一个 long 中(反之亦然) - 为什么不把它保存为他们提供的小数,然后给它当被问到时以小数形式返回?

    如果您需要将其作为某些内部流程的长期内容,请将其作为价格的一部分,而不是作为存储的一部分。..

    【讨论】:

    • 因为数据类型来自 EDM,并且它的类型在另一个 DB 中指定,所以在我们的 DB 中我们应该更改它
    • 仍然没有真正理解为什么必须在属性内进行转换,但如上所述它工作得很好
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 2011-04-13
    • 2018-05-24
    • 2014-05-10
    • 1970-01-01
    相关资源
    最近更新 更多