Jag har en abstrakt basklass som har en abstrakt property. låter inte som om det är ett korrekt arv - läs lite OO. Mer OO än så kan det inte bli lilla du. >Hur löses det? Går det? det var ju just det jag inte ville eftersom jag vill ha en typad access. Du ska vara glad att jag lugnat ner mig - gillar inte när folk är nedlåtande. >det var ju just det jag inte ville eftersom jag vill ha en typad access. Hej Emma!dynamisk typning av returvvärde
Kruxet är att det är i klassen som ärver från basklassen typen på returvärdet från propertyn bestäms.
Hur löses det? Går det?Sv: dynamisk typning av returvvärde
/EmmaSv: dynamisk typning av returvvärde
Det kallas polymorfism.
Det skulle enkelt kunna lösas genom att ange returtypen som en basklass till de möjliga returtyperna, alltså vanlig polymorfism.
Dock skulle jag gärna vilja ha en typad åtkomst. Tänkte om dte kanske fanns nån cool lösning i .net för det. Finns ju så mycket häftigt med typer vad jag har sett.
Någon annan som kan komma med något konstruktivt?Sv: dynamisk typning av returvvärde
I VB.NET får du välja en gemensam basklass, System.Object om inte annat.
MSSv: dynamisk typning av returvvärde
Vill inte cast:a returen heller.Sv: dynamisk typning av returvvärde
Förvänta dig inte mer hjälp från det här hållet!
om du läser på om arv en gång till så kommer du se att en klass som
ärver en annan ska vara en del av föräldraklassen, bara mer specifik.
Du vill tala om vilken typ variabeln som ska ärvas ska vara i subklassen -
äkta arv så ska den variabeln ärvas precis som den är, däremot kan du
lägga till egna variabler som deklareras precis som du vill i varje subklass.
/EmmaSv: dynamisk typning av returvvärde
>Vill inte cast:a returen heller.
Det är språket som sätter begränsningarna här, så vad du vill spelar inte så stor roll.
Ett annat alternativ du kan fundera över är att använda ett gränssnitt ist.f. en abstrakt basklass, och seden implementera dess metoder privat och erbjuda starkt typade publika metoder som alternativ. Typ
Class Pryl
End Class
Class AnnanSlagsPryl : Inherits Pryl
End Class
Interface IPrylFabrik
Function SkapaEnPryl() As Pryl
End Interface
Class MinAnnanSlagsPrylFabrik
Implements IPrylFabrik
Private Function InternSkapaEnPryl() As Pryl _
Implements IPrylFabril.SkapaEnPryl
Return New AnnanSlagsPryl()
End Function
Public Function SkapaEnPryl() As AnnanSlagsPryl
Return DirectCast(InternSkapaEnPryl(), AnnanSlagsPryl)
End Function
End Class
Det är väl det närmaste du kan komma det du önskar...
MSSv: dynamisk typning av returvvärde
Jag blev bara lite stött när du försökte slå mig på fingrarna om OO så jag får barnsligt nog säga att det var du som började.
Ditt första inlägg var ju inte speciellt konstruktivt, det måste du ju hålla med om.
Angående din "föreläsning" om vad arv är så ber jag dig kika på http://www.idt.mdh.se/kurser/cd5330/tla/material/Kap07-09-4up.pdf sidan 9 om vikla typer av arv det finns så ska du se att begreppet kanske är lite bredare än vad du har fått lära dig.
MS! Din lösning var lite kul, dock blir det i mitt fall lite myckat jobb för att uppnå en typad property men tack ändå.