从实现在

时间:2017-08-25 06:03:00

标签: c# inheritance interface

我有一个实现接口的对象,并从另一个类继承。但是对于一个函数,我只能传入该项的接口。是否有可能从父对象获取变量,如果它们不存在则为null?

  public class ProductStamp
  {
   public int qty;
  }

  public class TrolleyItem : ProductStamp, ITrolleyItem
  {

  }

  private void foo(ITrolleyItem trolleyItem)
  {
     trolleyItem.qty;  

  }

对于令人困惑的情况感到抱歉。我只是想知道这是否可能,如果是这样,我怎么能最好地去做。

注意:我已经简化了这种情况,但是每个类都在非常独立的地方,而其他附件依赖于它们。由于它的结构,我不能简单地传入foo(TrolleyItem trolleyItem)

提前谢谢

1 个答案:

答案 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
     }
}