public TResult Accept <TResult>(IProductVisitor <TResult> visitor) { return(visitor.Visit(this)); }
public virtual void Accept(IProductVisitor visitor) { visitor.Visit(this); }
public override void Accept(IProductVisitor visitor) => visitor.Visit(this);