我目前正在创建一个程序,要求我使用一些属性。但是我觉得我目前使用的属性可能不是最好的。
这些是我目前使用的属性:
// Returns the product name.
public string ProductName { get; set; }
// Returns and sets the latest price.
public decimal LatestPrice { get; set; }
// Returns the quantity
public int Quantity { get; set; }
// returns the total price of all the order items. (latest price * quantity)
public decimal TotalOrder { get; set; }
我感觉好像只返回一些东西的属性,例如ProductName
属性应使用不包含set;
或者,如果我将它们设置为private set
会发生什么?这会有用吗?
我可以使用这些属性还是应该编码?
我实际上并没有得到任何错误代码,只是认为可能有比我目前更好的方式。
答案 0 :(得分:-2)
如果属性只返回某些内容,则可以像设置的那样将set accessor设为私有。
但是,它无法通过属性设置数量和价格。你需要在construtor中传递它。
对于TotalOrder,您应该实现get访问器以使其与更新的LatestPrice和Quantity对齐。
class Book
{
public Book(decimal price, int number)
{
LatestPrice = price;
Quantity = number;
}
public decimal LatestPrice { get; private set; }
public int Quantity { get; private set; }
public decimal TotalOrder { get{ return LatestPrice * Quantity;} private set{}}
}