Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich glaube, ich verstehe Dich nicht ganz. Geht es nur um die Zuweisung eines abgeleiteten Typs? Falls ja, kannst Du einem Objekt vom Typ a eine Instanz vom Typ a oder b zuweisen. Einem Objekt vom Typ b kannst Du aber nur eine Instanz vom Typ b zuweisen, da b als abgeleiteter Typ eine Spezialisierung der Klasse a ist und der Compiler nicht weiß, welche Werte er den Eigenschaften und Feldern zuweisen soll, wenn Du versuchst eine Instanz vom Typ a einer Instanz von b zuzuweisen.
Ich will eben eine Zuweisung vermeiden. Klar, kann ich eine Flache Kopie, denn es ist dann im Prinzip so.
Code:
class b : a
{
public b(a data)
{
this.MyInt = data.MyInt;
}
}
Mir reicht es hier wenn es eine Flache Kopie ist.
Hm, mit dem Interface geht es auch nicht richtig.
Code:
interface Ic
{
int MyInt;
}
class a : Ic
{
public int MyInt{get;set;}
}
class b: a, Ic
{
}
b data = new a() as Ic;
Das Problem, ich brauche nicht nur Properties, sondern auch die Methoden. Wenn ich nur interface auf b mache, erbe ich halt die Methoden nicht und muss diese neue implementieren. Und mit dem zweiten Codeauschnitt geht es auf jeden Fall nicht.
Hm muss dann wirklich mit dem ersten Codeauschnitt (im aktuellen Beitrag) arbeiten.
EDIT:
Was ich machen kann... da ich sowieso klasse a als Basis brauche kann ich ja das ganze Konzept umkehren. Denn die Klasse B beinhaltet ja nur zusätzliche Methoden für die Weiterverarbeitung. a erbt alles vom b und statt b benutzte ich einfach a.
Beschreib doch einfach mal, was du brauchst, was für Klassen mit welchen Properties und Methoden. Gerne auch abstrakt.
Also beispielsweise:
Eine Klasse "Haus" mit Properties int "Größe", Eigentümer "Eigentümer" und mit den Methoden "Abschließen" und "Sprengen".
Eine Klasse "Eigentümer" mit Properties int "IQ" und double "Bauchumfang" und der Methode "Springen".
Dann kann man sich überlegen wie man das zusammenbastelt.
Ich habe eine Config Klasse für die FTP Verbindungen und eine Downloader Klasse, die Dateien runter lädt. Downloader braucht aber Config. Config hat interne Verschlüsselung die der Downloader eventuell braucht, falls die Daten verschlüsselt sind (es geht nur um die Zugangsdaten und deren Speicherung auf der HDD).
So dachte, ich lasse den Downloader die Config Klasse erben. Dann habe ich alles was ich brauche in Downloader. Es ging mir hier nur um die bequeme Datenweitergabe von Config an den Downloader. Das geht aber nicht so einfach...
Tschuldigung für die große Verwirrung. Werde einfach einen neuen Constructor anlegen der die Config Klasse als Parameter hat. Wäre wohl am einfachsten....
Warum nicht einfach der Download-Klasse ein Property vom Typ Config mitgeben?
Falls Config auch nur einmal zur Laufzeit existiert, kann man auch über einen Singleton nachdenken.
Und als Konstruktorüberladung dem Downloader die Config mitgeben.