Lærte noget nyt om arv i dag…

Da jeg sad og skulle implementere et design, kom der en ide op omkring en variabel der skulle udbydes af en abstrakt klasse, for derefter at blive assignet i den nedarvende klasse.
Under selve implementeringen finder jeg på at gøre variablen readonly, men finder ud a at det ikke kan lade sig gøre.
Jeg troede, at så længe jeg assignede variablen i en konstruktør, var der ingen is på koen. Men der skulle jeg så lære noget nyt 🙂

Eksemplificeret ved følgende blok:

     public class Foo
     {
         protected readonly string setInSubClass;
         private readonly string setInBase;
         protected Foo()
         {
             setInBase = "base" ;
         }
     }
     public class Bar : Foo
     {
         public Bar() : base ()
         {
             setInSubClass = "subclass" ;
         }
     }
 }

Men visual studio skulle vise sig at kende til en begrænsning jeg ikke kendte (det er ikke første gang). Se screensnip:

Og tilhørende build fejl:

Loading

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.