Probleme mit dynamischem cast

Snowcrack

Mitglied
Hallo zusammen,

ich habe probleme bei einem dynamischen cast.
Aus der Klasse FrmWaitingQueue rufe ich die Methode Check von meinem ObjectVisitor Objekt auf und übergebe ein UltraGrid als object.

Code:
    public partial class FrmWaitingQueue : Form, IAcceptObjectVisitor
    {
        

        public FrmWaitingQueue()
        {
            InitializeComponent();

            WaitingQueueUser user = WaitingQueueUser.GetUser();
            this.Accept(user);
        }

        public void Accept(ObjectVisitor ov)
        {
            ov.Check(this.ultraGrid1);
        }
    }

Dieses object möchte ich in seinen Type casten, also in ein UltraGrid. Und danach die entsprächende Check Methode aufrufen.
Das Problem ist, dass immer wieder (in einer Endlosschleife) die Check(object obj) Methode aufgerufen wird.


Code:
    public abstract class ObjectVisitor
    {
        public abstract void Check(object obj);
    }

    public abstract class ObjectVisitorWaitingQueue : ObjectVisitor
    {
        public abstract void Check(UltraGrid utg);
    }

    public class WaitingQueueUser : ObjectVisitorWaitingQueue
    {
        public static WaitingQueueUser GetUser()
        {
            return new WaitingQueueUser();
        }


        public override void Check(UltraGrid utg)
        {
            //Diese methode soll aufgerugen werden 
        }

        public override void Check(object obj)
        {
            Type t = obj.GetType();
            this.Check(Convert.ChangeType(obj, t));
            //Problem: Methode ruft sich immer selbst auf!
        }
    }

Hat jemand eine Idee?

Grüße Snowcrack
 

Neue Beiträge

Zurück