Entwickler-Ecke
C# - Die Sprache - Klassen zuweisen
John Sanson - Mi 31.10.07 13:16
Titel: Klassen zuweisen
Hallo.
Ich habe 2 Klassen. Beide erben von einem Interface, das bedeutet in meinem Fall, dass beide Klassen die Eigenschaften aus dem Interface (Vorname,Nachname) und ihre eigenen Eigenschaften haben. Jetzt würde ich gern sagen:
Klasse1 = Klasse2. Beider dieser Zuweisung sollen nur die aus dem Interface stammenden Properties zugewiesen werden.
Natürlich geht es auch Klasse1.Vorname = Klasse2.Vorname usw., so soll es aber nicht sein.
Danke schonmal im vorraus.
Chris
UGrohne - Mi 31.10.07 14:31
Titel: Re: Klassen zuweisen
John Sanson hat folgendes geschrieben: |
Hallo.
Ich habe 2 Klassen. Beide erben von einem Interface, das bedeutet in meinem Fall, dass beide Klassen die Eigenschaften aus dem Interface (Vorname,Nachname) und ihre eigenen Eigenschaften haben. Jetzt würde ich gern sagen:
Klasse1 = Klasse2. Beider dieser Zuweisung sollen nur die aus dem Interface stammenden Properties zugewiesen werden.
Natürlich geht es auch Klasse1.Vorname = Klasse2.Vorname usw., so soll es aber nicht sein.
Danke schonmal im vorraus.
Chris |
Mach doch einen Typecast mit dem Interface, dann hast Du immer noch die Ursprungsklasse, aber die Eigenschaften sind korrekt. Oder was willst Du genau erreichen?
John Sanson - Mi 31.10.07 15:04
Ich habe verschiedene Klassen mit teilweise gleichen Eigenschaften (die aus dem Interface) und immer diese sollen zugewiesen werden.
Ich habs anfangs mit Klass1 = (ITest)Klasse2 probiert und auch ohne Casting...aber irgenwie hänge ich grad.
Wie meinst du das genau mit dem Interface Casting?
UGrohne - Mi 31.10.07 15:30
John Sanson hat folgendes geschrieben: |
Ich habe verschiedene Klassen mit teilweise gleichen Eigenschaften (die aus dem Interface) und immer diese sollen zugewiesen werden.
Ich habs anfangs mit Klass1 = (ITest)Klasse2 probiert und auch ohne Casting...aber irgenwie hänge ich grad.
Wie meinst du das genau mit dem Interface Casting? |
Das was Du gemacht hast, ist ja ein Type Cast mit einem Interface. Wenn Du die Eigenschaften in eine komplett neue Objektinstanz übernehmen willst, musst Du Dir selbst eine Methode dafür schreiben, denn Du kopierst ja Informationen. Am Besten also eine Basisklasse schreiben, die das Interface implementiert und dort die Eigenschaften des Interfaces in einer statischen Methode von einer Instanz des Interfaces in eine andere kopieren.
John Sanson - Mi 14.11.07 12:22
Moin hab jetzt eine gute Lösung bei meinem Problem gefunden...eigentlich bei der Suche nach einer anderen Lösung.
Jedenfalls habe ich meinen Klassen implicit und explicit Converting Methoden eingebaut. Nun kann ich alles zuweisen. Per Extension Methods müsste das auch mit mit bereits im Framework enthaltene Klassen funktionieren.
Grüße
Chris
Kha - Mi 14.11.07 17:02
Ich weiß ja nicht, wie deine Klassenstruktur genau aussieht, aber sicher, dass es nicht eine bessere Lösung gibt? Klonen von Objekten macht nur in sehr seltenen fällen Sinn und teilweises Klonen erst recht. Deine Beschreibung hört sich eher danach an, dass man die gemeinsamen Daten in eine eigene Klasse auslagern sollte, deren Objekt dann von beiden Objekten referenziert werden kann. Wie gesagt, nur Spekulationen ;) .
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!