Je suis en train d'ajouter des membres Partagés dans les classes dérivées et l'utilisation que les valeurs dans les classes de base ...Comment utiliser la classe dérivées des variables partagées dans les méthodes communes de classe de base
J'ai la base
class DBLayer
public shared function GetDetail(byval UIN as integer)
dim StrSql = string.format("select * from {0} where uin = {1}", tablename, uin)
....
end function
end class
ma classe
class User inherits dblayer
public shared tabledname as string = "users"
end class
class item inherits dblayer
public shared tabledname as string = "item"
end class
class category inherits dblayer
public shared tabledname as string = "category"
end class
dérivé Actuellement, il y a une erreur en utilisant la variable tablename
d'une classe dérivée dans ma classe de base.
Assurez-vous que la deuxième méthode fonctionne mais que la première méthode se termine par une erreur appelant la fonction de nom de table de la classe de base au lieu de la fonction de classe enfant. Mais je préférerais la première méthode. Y a-t-il un remède pour la première méthode? – KoolKabin
@KookKabin: La deuxième méthode est tellement plus propre, maintenable et plus facile à lire. Moins de chance d'erreurs. – AMissico
@KoolKabin: J'ai mis à jour la première méthode, mais c'est un mauvais design. Utiliser Partagé à cette fin n'est pas conseillé car vous avez "changé" ce que signifie share/static pour l'implémentation de cette classe. En d'autres termes, la valeur partagée n'est plus partagée entre toutes les classes, y compris les classes dérivées. Par conséquent, le programmeur doit être discipliné pour utiliser ces classes. De plus, ils ont beaucoup de mal à déboguer et à lire le code. Basé sur mon expérience et connaissance de concevoir des bibliothèques, je suggère fortement la deuxième méthode, mais l'expérience. C'est un changement relativement facile. – AMissico