我想打印价格在10到50欧元之间的所有产品。 我在main中创建了2个产品,并且我从Product类中调用了该方法以进行验证。但它每次都给我其他分支,"没有产品"。我明白我的意思做错了,我从类Product创建了一个对象引用,然后我调用了方法,但是它给了我错误的输出,因为在方法中我创建了另一个对象,对于这个对象,这个价格是0所以它向我展示了那个东西。 但是我怎么解决这个问题呢? 这里有课程: 产品类:
class Product
{
public int ProductId;
public string SKU;
public string Name;
public decimal Price;
public string Description;
public string Producer;
public virtual decimal GetPrice()
{
return Price;
}
public virtual String GetName()
{
return Name;
}
public void PrintPrice()
{
Product f = new Product();
if (f.GetPrice() > 10 && f.GetPrice() < 50)
Console.WriteLine("Product: {0}", f.GetName());
else
Console.WriteLine("No products priced between 10 and 50 lei.");
}
public Product() { }
我创建对象的主要部分:
static void Main(string[] args)
{
Product f = new Food(1, "green", "Papa", 15, "Good Quality", "Sana");
Product f1 = new Food(2, "white", "Papa1", 45, "Bad Quality", "Ariel");
f.PrintPrice();
f1.PrintPrice();
}
我也有食品类,但它只继承了Product类,因此它与此无关。那我该怎么办?谢谢。
答案 0 :(得分:3)
public void PrintPrice()
{
Product f = new Product();
....
}
目前,f是一个没有任何属性(包括没有价格)的新产品
您应该执行类似
的操作public void PrintPrice()
{
if (this.GetPrice() > 10 && this.GetPrice() < 50)
Console.WriteLine("Product: {0}", this.GetName());
else
Console.WriteLine("No products priced between 10 and 50 lei.");
}
答案 1 :(得分:-1)
您没有为价格指定值,所以它为0然后您有“没有产品”..尝试首先为产品分配值