17. september 2012 - 18:12Der er
14 kommentarer og 1 løsning
Abstract klasse og brug af denne til en default behavior på anden klasse.
Jeg vil gerne opnå følgende:
Jeg har et sæt metoder i en klassefil (ClassA.cs). Jeg har en abstract klasse (MyAbstractClass.cs).
Min ClassA implementerer MyAbstractClass.
public class MyClass : MyAbstractClass { public void EnRandomMetode(){ ... ... ... } }
Jeg vil gerne have min Abstract klasse til at skyde en metode af ved kald af EnRandomMetode() i MyClass. Kan det lade sig gøre? Ideen er at denne MyAbstractClass kan implementeres af andre klassefiler. Er det helt forkert at benytte sig af en abstract klasse til dette? eller skal jeg bruge noget andet.
namespace E { public abstract class AP { public virtual void M() { Console.WriteLine("AP"); } } public class C1 : AP { public override void M() { Console.WriteLine("C1"); } } public class C2 : AP { } public class Program { public static void Main(string[] args) { AP o1 = new C1(); o1.M(); AP o2 = new C2(); o2.M(); Console.ReadKey(); } } }
Jeg kan i min abstract klasse hive fat i navnet på den kaldende metode? I mit tilfælde EnRandomMetode? Så jeg fx. i Console.WriteLine("AP"); istedet kan få skrevet:
Console.WriteLine("M"); da det er den, der starter showet?
Tja. vil bare intercepte kaldet af EnRandomMetode i den abstracte klasse. Det ka være jeg misforstår det, men anser den abstracte klasse til at forstå at den bliver bragt i live af EnRandomMetode .
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.