Gå til innhold

Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet
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 :)

Skrevet

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.

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...