HDSoftware Skrevet 6. november 2007 Del Skrevet 6. november 2007 Hei folkens Har en liten sak her Gitt følgende klasse public class BaseClass { public BaseClass(String pSomeValue) { // Constructor med en inngående STRING verdi } } Så lager jeg en ny klasse basert på denne klassen public class NewClass : BaseClass { public BaseClass() { // Hva skal man ha her tro? } } Jeg vil nemlig at den nye klassen ikke skal ha noen inngående parametere i konstruktøren. Ideer? Lenke til kommentar
steingrim Skrevet 6. november 2007 Del Skrevet 6. november 2007 Jeg vil nemlig at den nye klassen ikke skal ha noen inngående parametere i konstruktøren. Ideer? Regner med du mente å skrive NewClass i konstruktøren i subklassen. Enten må du kalle base-ctoren med en default verdi, feks null eller string.Empty: public class NewClass : BaseClass { public NewClass() : base(string.Empty) { } } Eller du kan lage en protected default ctor i base-klassen din. Da vil subklassen kunne ha en default ctor, men ingen andre kan kalle den. public class BaseClass { protected BaseClass() { } public BaseClass(string s) { // ... } } public class NewClass : BaseClass { public NewClass() { } } Når BaseClass kun tillater å instantieres med en string så betyr jo det at den er i ulovlig tilstand hvis den ikke får en string, dermed synes jeg det er riktigst av subklassene å gi noe til baseklassen. Men det er jo min mening Lenke til kommentar
HDSoftware Skrevet 6. november 2007 Forfatter Del Skrevet 6. november 2007 Enig med deg at det å endre constructor fra base til sub ikke er spesiellt bra. Var bare en tanke jeg lekte med. Men takk for info, tror du løste problemstillingen uansett. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå