mouais ca me parle pas trop
mais les classes ca fait partie de la programmation orientée objet
avant on avait des tableaux, dans lesquelles on mettait les variables
dim a(7) as object en gros
on fait des redim pour ajouter une ligne, et on lisait les variables par if a(6) = tellevaleur then tellesub(a)
avec la poo on fait une classe explicite avec des variables typées
pour une tâche on ferait
1 2 3 4 5 6 7 8 9 10
|
public class task
public property nom as string
public property dateevent as date
public function DoitAvertir as boolean
if dateevent > now then return true
return false
end function
...
end class |
ca rend le code beaucoup plus lisible, moins buggable et donc plus maintenable
1 2 3
| dim t as new task
t.nom = "tache 1"
t.dateevent = cdate("01/11/2013 10:00:00") |
pour le stockage il y a des collections, en gros des tableaux encapsulés dans du mieux
1 2
| dim l as new list(of task)
l.add(t) |
if t.DoitAvertir then gestionnaireDavertissement.active(l(0))
en mettant des sub et des fonctions dans les classes ca permet de ranger le code là ou il doit être plutot que d'avoir des fonctions partout pour faire tout
on peut donc en peu de code lisible faire ses traitements
1 2 3
| for each t in l
if t.DoitAvertir then gestionnaireDavertissement.active(t)
next |
après on peut mettre un peu de linq là dedans
1 2
| dim tachesAvertissements = (from t in l where t.DoitAvertir = true select t)
tachesAvertissements.ForEach(new action(of tache)(sub(t as tache)(gestionnaireD'avertissement.active(t))) |
concernant tes questions spécifiques :
le constructeur c'est le sub new, c'est lui qui est appelé pour créé l'instance, par défaut il ne fait rien et ne demande pas de paramètres
néanmoins dans certains cas on peut le modifier
en lui ajoutant des paramètres, ca permet de forcer la création de l'instance avec des valeurs
1 2 3 4
| public sub new (nom as string)
if nom = "" then throw new argumentnullexception("nom")
me.nom = nom
end sub |
comme ca on est sur que nulle part dans l'appli quelqu'un créera une tache sans nom
ce genre de chose peut paraitre inutile, néanmoins il permet de coder de manière plus sécurisée, après nulle part dans le code on aura la surprise de trouver un tâche sans nom
sécuriser le code est aussi essentiel sur des gros projets et/ou du travail d'équipe
après sur des petits projets, on code au plus vite et sans mettre en place des tas de techniques
en le rendant private, personne ne peut l'appeler de l'extérieur, tu n'en auras surement pas besoin, mais ca permet alors de créer des factories, à savoir une méthode permettant de créer des instances, ou d'en retourner des existantes
je peux détailler plus ce point, mais on doit trouver des explication sur le design pattern factory ou des singletons sur le net
le constructeur surtout s'il est paramétré permet aussi de coder une initialisation de certaines choses
les classes partielles sont rarement utiles aussi, le plus souvent on les trouve avec des générateurs de code, les plus connus étant le designer windows forms et entity framework
ca permet de couper une classe en plusieurs morceaux
quand on créé un form visual studio créé 2 fichiers, un fichier où tu mets ton code, et un fichier caché par défaut que visual studio remplie avec la description de l'interface (mais en code vb.net)
ca permet de réunir ces 2 codes au sein de la même classe
au final il y a des principes de base à bien assimiler en .net comme la POO, faire des classes utiliser des collections
ca permet de bien débuter sans passer à côté des bases
après il y a des tas de possibilités techniques qui sont pratique dans certains cas mais qui ne sont pas obligatoires pour faire un programme qui marche
mais au moins l'outil est complet, on peut faire de grandes choses si nécessaire
Partager