[英]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.