【发布时间】:2019-10-04 02:40:42
【问题描述】:
我想知道类定义部分的类型转换。例如,是否可以在 get/set 部分从 long 转换为 decimal?
【问题讨论】:
-
欢迎来到 SO。请提供您的代码并解释什么不起作用。查看提问的最佳实践:stackoverflow.com/help/how-to-ask
标签: c# type-conversion getter-setter
我想知道类定义部分的类型转换。例如,是否可以在 get/set 部分从 long 转换为 decimal?
【问题讨论】:
标签: c# type-conversion getter-setter
只需投射。
get => (decimal)someLong;
【讨论】:
是的,可以在 c# 代码的任何地方进行类型转换。如果属性 get/set 只能执行单个值返回/分配,那么就不需要它们/您根本没有机会编写它们; c# 团队会做到这一点,所以编译器会为你做它作为一个快捷方式
这是一个例子:
private long _backingField = 0;
public decimal PropertyName{
get{
return Convert.ToDecimal(_backingField);
}
}
有点好奇你为什么要打扰;通过创建一个属性,您是在说“使用此属性的开发人员必须提供/期望一个小数” - 为什么然后将它存储在一个 long 中(反之亦然) - 为什么不把它保存为他们提供的小数,然后给它当被问到时以小数形式返回?
如果您需要将其作为某些内部流程的长期内容,请将其作为价格的一部分,而不是作为存储的一部分。..
【讨论】: