我想知道类定义部分中类型的转换。例如,是否可以在get / set部分中将long转换为十进制?
感谢
只是cast。
get => (decimal)someLong;
是的,可以在C#代码的任何地方进行类型转换。如果属性get / set只能执行单个值的返回/赋值,则将不需要它们/您将根本没有机会编写它们。 C#团队会做到这一点,所以编译器会为您做为快捷方式
这里是一个例子:
private long _backingField = 0;
public decimal PropertyName{
get{
return Convert.ToDecimal(_backingField);
}
}
对为什么要打扰的原因有些好奇;通过设置一个属性,您说的是“使用此属性的开发人员必须提供/期望一个十进制数-为什么然后将其存储在一个长整数中(反之亦然)-为什么不将其保留为提供的十进制数,并退还给它询问时为小数?