[英]How to overload a property setter in C#?
我决定在我的一些新项目中使用 SQLite。 这似乎正是我想要使用的,除了你不能将钱存储为小数。 我试图解决这个问题的方法是将货币值存储为 INTEGER ,然后当我在 C# 程序中检索数据时将其转换为小数。 我的问题是,当我将 class 中的价格字段设置为数据库中的值时,需要在 Price 属性中输入一个 INT 值,并将其转换为十进制(可以如下所示进行):
public class ProductModel
{
private decimal price { get; set; }
public int Price
{
get
{
// Code
}
set { price = (decimal)(value / 100); }
}
}
但是,在我的代码的其他地方,我希望能够通过键入货币值的正常十进制格式来设置价格值
Product.Price = 1.99M
在我看来,一个非常简单的方法是使用“重载属性”,以便 class 可以处理两种不同的输入类型:
public class ProductModel
{
private decimal price { get; set; }
public int Price
{
get
{
// Code
}
set { price = (decimal)(value / 100); }
}
public Decimal Price
{
get
{
// Code
}
set { price = value; }
}
}
但正如我在网上看到的,C# 中不存在重载属性。 有什么替代方法? 我可以只使用两个重载方法,但是与 dapper 一起使用并不是很容易,因为 dapper 只是直接保存到类的属性中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.