如何解析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类,所以它在这里不相关。那么我该怎么办呢?非常感谢。
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,然后您就得到了"无产品"。。尝试首先为产品分配一个值