如何在c#

时间:2015-11-02 09:50:35

标签: c#

我想打印价格在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类,因此它与此无关。那我该怎么办?谢谢。

2 个答案:

答案 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然后您有“没有产品”..尝试首先为产品分配值