Vielen Dank Claudius, ich habe es hinbekommen...

Jan



-----Original Message-----
From: Claudius Ceteras [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, June 11, 2003 6:49 PM
To: [EMAIL PROTECTED]
Subject: RE: [Asp.net] Fehlermeldung



> Vielen Dank erst mal. Ein Participant kann entweder ein 
> Customer oder ein
> Consultant sein. Also was genau muss ich den nun machen, um 
> von der Klasse
> Participant auf die Klasse Customer oder Consultant zugreifen 
> zu k�nnen?
> 
> Ich glaub ich steh am Schlauch...

Was hast du denn genau vor?

Hier mal ein Beispiel...

class Participant {
        public void Talk(string x) {
                Console.WriteLine(x);
        }
}
class Customer : Participant {
        public void Ask(string x) {
                Talk(x + "?");
        }
}
class Consultant : Participant {
        public void Answer(string x) {
                Talk(x + "!");
        }
}

Jetzt sollte es klar sein, dass Du z.B. Participants oder Consultants
nicht nach Customer casten kannst... Denn die haben ja keine
Ask-Methode...
Aber Du kannst immer die abgeleitete Klasse zur Basis-Klasse casten...

Also:

Participant p1 = new Customer(); // ok, implizites casten
Participant p2 = new Consultant(); // ok, implizites casten
Participant p3 = new Participant(); // ok
Customer c1 = (Customer)p1; // ok, weil in p1 ein Customer ist...
Customer c2 = (Customer)p2; // fehler... p2 ist kein Customer
Customer c3 = (Customer)p3; // fehler... p3 ist kein Customer


Claudius


> 
> THX
> 
> 
> 
> 
> -----Original Message-----
> From: Claudius Ceteras [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, June 11, 2003 5:00 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [Asp.net] Fehlermeldung
> 
> 
> > Exception Details: System.InvalidCastException: Specified 
> > cast is not valid.
> > 
> > Source Error: 
> > 
> > Line 136:           {
> > Line 137:                   ok = false;
> > Line 138:                   customer = (Customer)
> > control.getLoginData().getParticipantData();
> > Line 139:                   ok = customer.closeTicket();
> > Line 140:                   if(ok == true)
> > 
> > 
> > Dabei ist Customer eine abgeleitete Klasse von Participant.
> 
> Also... Wenn getParticipantData() ein Participant zur�ckliefert, der
> halt kein Customer ist, also z.B. ein Participant oder eine 
> Klasse, die
> von Particpant abgeleitet ist, aber nicht Customer ist, dann funzt das
> nicht...
> 
> Du kannst einen Customer immer zu Participant casten, aber andersherum
> nur, wenn der Participant auch wirklich ein Customer ist...
> 
> 
> Claudius
> 
> _______________________________________________
> Asp.net mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/asp.net
> _______________________________________________
> Asp.net mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/asp.net
> 

_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net
_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an