Beste GoT'ters,
ik heb een probleempje. Ik wil in een virtuele methode uit een basisklasse constanten uit een subklasse gebruiken. Ik kan het probleem zo versimpel weergeven:
Maar wat ik ook probeer, ik krijg altijd "Base". Dit is wat ik al geprobeerd heb:
Maar met alles krijg ik dus "Base".
Weet iemand hoe het wel moet?
ik heb een probleempje. Ik wil in een virtuele methode uit een basisklasse constanten uit een subklasse gebruiken. Ik kan het probleem zo versimpel weergeven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| class Override { public /* iets */ print = "Base"; public virtual void Print() { Console.WriteLine(print); } } class Subclass : Override { public /* iets */ print = "Sub"; static public void Main(string[] args) { Subclass a = new Subclass(); a.Print(); // Verwacht: "Sub" Override b = new Subclass(); b.Print(); // Verwacht: "Sub" Override c = new Override(); c.Print(); // Verwacht: "Base" } } |
Maar wat ik ook probeer, ik krijg altijd "Base". Dit is wat ik al geprobeerd heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| // Base class: public const String t1 = "Base"; public const String t2 = "Base"; public readonly String t3 = "Base"; public static readonly String t4 = "Base"; public static readonly String t5 = "Base"; // Subclass: public const String t1 = "Sub"; public new const String t2 = "Sub"; public readonly String t3 = "Sub"; public static readonly String t4 = "Sub"; public new static readonly String t5 = "Sub"; |
Maar met alles krijg ik dus "Base".
Weet iemand hoe het wel moet?
[ Voor 2% gewijzigd door dtech op 15-05-2010 22:42 . Reden: linkje toegevoegd ]