[C#] Struktur einer Klasse übergeben - ist dies überhaupt möglich?

corey

Ensign
Registriert
März 2005
Beiträge
254
Hi all,

Habe ein Problem: Ich möchte eine Struktur einer Klasse übergeben (in beiden Klassen dieselben Strukturen als Felder definiert). Folgender Fehler aus dem Studio kommt dann:

memorize\frmTermin.cs(420): Argument '1': kann nicht von 'memorize.frmTermin.calendarDay' zu 'memorizeLogik.kalenderInhalt.calendarDay' konvertiert werden

Geht dies überhaupt?

Gruss

Corey
 
Hallo corey,

mein C# ist nicht sonderlich gut, aber von der Softwarearchitektur her ist das Konzept nicht besonders glücklich. Vor allem ist es fehleranfällig zweimal die selbe Struktur zu definieren.
Man vergisst bei Änderungen in der einen Klasse schnell mal die andere auch zu ändern.

Schöner wäre es auf jeden Fall die Struktur/Klasse nur einmal zu definieren und dann mit dieser zu arbeiten.

MfG

Arnd
 
Hi arnd,

Ja hast recht, aber wie kann man dies realisieren?:D hab keine Ideen:)

gruss

corey
 
Das wäre natürlich auch eine gute Idee....
 
corey schrieb:
memorize\frmTermin.cs(420): Argument '1': kann nicht von 'memorize.frmTermin.calendarDay' zu 'memorizeLogik.kalenderInhalt.calendarDay' konvertiert werden

Geht dies überhaupt?

Wieso sollte das gehen? Du weist total andere Typen einander zu... Das hat wohl nichts mit dem Problem zu tun, ob Strukturen übergeben werden können.

'memorize.frmTermin.calendarDay' zu 'memorizeLogik.kalenderInhalt.calendarDay'

Ich habs nicht probiert, aber warum sollten Struktur-Typen nicht übergeben werden können?
 
1. Es sind total die gleichen Strukturen.
2. Funktioniert das mit den Strukturen nicht, da sie auf dem Stack und nicht auf dem Heap abgespeichert werden.

- > ich habe es nun so gemacht wie WingX gesagt hat, ich habe extra eine Klasse für diesen Fall erstellt.
 
Du siehst vielleicht das es genau die selben Strukturen sind. Der Compiler, bzw. Preprocessor aber nicht. Sie mögen gleich aussehen habe aber einen unterschiedlichen Namen und sind damit eben unterschiedliche Typen.

Es kann ja auch Absicht sein, das sie gleich aussehen.
Du würdest Dich bedanken, wenn der Compiler einfach gleiche Sachen zusammenlegt, nur weil sie gleich aussehen :-).

In C wäre es jetzt kein Problem das einfach zu casten und trotzdem zu übergeben. Aber auch in C würde der Compiler erstmal motzen das das so nicht geht. Mit dem cast zwingst Du ihn dazu das dann zu ignorieren.

In C# weiss ich nicht ob es geht, aber falls wäre es auf jeden Fall unsaubere Programmierung.

MfG

Arnd
 
Zurück
Oben