我有一个简单的问题。
有一个基类产品。
派生类为Bracelet,Earring和Ring。
但是铃声类具有额外的属性。

我将如何达到该size属性,并在下面的代码中的方法中使用它。

public class Product
{
    public int id;
    public string title;
}

public class Bracelet : Product
{

}

public class Earring : Product
{

}

public class Ring : Product
{
    public int size;
}

Product product;
if(category = 1) // this is a  Bracelet
{
    product = new Bracelet();
}
else if(category = 2) // this is a Earring
{
    product = new Earring();
}
else if(category = 3) // Wola, this is a ring
{
    product = new Ring();
    product.size = 4; // I cant reach size.. I need to assign size of the ring to decrease stock correctly.
}

product.decreaseStock();

最佳答案

只需先在本地声明值:

else if (category == 3)
{
    var ring = new Ring();
    ring.size = 4;
    product = ring;
}


这样,您可以在Ring块中以if的形式访问变量,但也将其分配给更通用的product变量。

另外,您可以只使用初始化程序语法:

else if (category == 3)
{
    product = new Ring { size = 4 };
}

10-05 18:37