我有一个简单的问题。
有一个基类产品。
派生类为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 };
}