如何解析c#中的空对象引用

本文关键字:对象引用 何解析 | 更新日期: 2023-09-27 18:20:14

我想打印价格在10到50欧元之间的所有产品。我主要创建了两个产品,并从类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();
    }

我也有food类,但它只继承了Product类,所以它在这里不相关。那么我该怎么办呢?非常感谢。

如何解析c#中的空对象引用

   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.");
}

您没有为Price赋值,所以它是0,然后您就得到了"无产品"。。尝试首先为产品分配一个值