我有一个实现接口的对象,并从另一个类继承。但是对于一个函数,我只能传入该项的接口。是否有可能从父对象获取变量,如果它们不存在则为null?
public class ProductStamp
{
public int qty;
}
public class TrolleyItem : ProductStamp, ITrolleyItem
{
}
private void foo(ITrolleyItem trolleyItem)
{
trolleyItem.qty;
}
对于令人困惑的情况感到抱歉。我只是想知道这是否可能,如果是这样,我怎么能最好地去做。
注意:我已经简化了这种情况,但是每个类都在非常独立的地方,而其他附件依赖于它们。由于它的结构,我不能简单地传入foo(TrolleyItem trolleyItem)
提前谢谢
答案 0 :(得分:0)
是否可以从父对象获取变量,如果不存在则为null?
是的,您需要投射i,如果投射成功,您可以访问该变量:
private void foo(ITrolleyItem trolleyItem)
{
TrolleyItem temp = trolleyItem as TrolleyItem
// this checks whether the cast has worked.
// if true you have now a real object of type TrolleyItem and it has the parent variable
if(temp != null)
{
temp.qty
}
}