Nejaky C# master, ktory by mi vedel poradit s generikami a ich pretazovanim v potomkoch classy?
Tu je moj kod:
usingSystem;usingSystem.Collections.Generic;publicclassProgram{staticvoidVisit(Visitor visitor){
var animal =newList<Animal>();
var cat =newList<Cat>();
visitor.Visit(animal);
visitor.Visit(cat);}publicstaticvoidMain(){Visit(newVisitor());Visit(newFirstVisitor());Visit(newSecondVisitor());Visit(newThirdVisitor());}publicclassVisitor{publicvirtualvoidVisit<T>(List<T> objects)where T :Animal{Console.WriteLine("Called visit from base visitor");}}publicclassFirstVisitor:Visitor{publicvoidVisit(List<Cat> cats){Console.WriteLine("called cats from first visitor");}}publicclassSecondVisitor:Visitor{publicvoidVisit(List<Animal> cats){Console.WriteLine("called animal from second visitor");}}publicclassThirdVisitor:Visitor{public override voidVisit<T>(List<T> objs){Console.WriteLine("called obj from third visitor");}}publicclassAnimal{}publicclassCat:Animal{}}
Vystup je:
Called visit from base visitor
Called visit from base visitor
Called visit from base visitor
Called visit from base visitor
Called visit from base visitor
Called visit from base visitor
called obj from third visitor
called obj from third visitor
Dotaz
Deleted User 295
Nejaky C# master, ktory by mi vedel poradit s generikami a ich pretazovanim v potomkoch classy?
Tu je moj kod:
Vystup je:
https://dotnetfiddle.net/
Problem je, ze pretazene metody vo First a Second visitore sa vobec nevolaju.
Povodne to je kus C++ kodu, ktory potrebujem v podobnom style prepisat do C#
Link to comment
Share on other sites
3 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now