2011-08-22 4 views
2

J'ai récemment commencé à apprendre VB.NET et j'ai lu un livre pour débutants Step-By-Step. Je passe maintenant à un livre Advanced et les deux n'ont pas vraiment expliqué à quoi ça sert. les modules et les classes sont.Fonctions VB.NET, Classes & Modules Vs

Les modules et les classes sont-ils simplement des moyens d'organiser des fonctions et des sous-procédures?

E.g. Une classe nommée MyMathClass qui contient 100 fonctions mathématiques différentes serait plus facile à parcourir que celle d'un fichier avec 100 fonctions non liées.

+0

Ne confondez pas les classes avec un ensemble de fonctions. Je crains que les livres aient non seulement échoué à expliquer quels modules sont, mais - beaucoup plus important - quelles classes et objets sont dans un [contexte orienté objet] (http://oreilly.com/catalog/objectvbnet/chapter/ch01 .pdf). –

+0

[ici] (http://msdn.microsoft.com/en-us/library/dd460654.aspx) contient plus d'informations sur OOP dans .NET. En passant, un module est vraiment comme une collection de fonctions pour un contexte spécifique (par exemple, les algorithmes mathématiques). Mais j'éviterais les modules à la première place car ils empêchent de comprendre les concepts de POO puisqu'il n'y a pas de constructeur (public) et que toutes les fonctions/propriétés sont [partagées] (http://msdn.microsoft.com/de-de/library /zc2b427x.aspx). –

Répondre

4

Les modules sont un reste VB6. Requis pour la compatibilité, il est inutile de les utiliser lorsque vous programmez à partir de zéro. Le plus gros problème avec eux est qu'ils polluent l'espace de noms global. Cela pourrait être agréable au début, mais il échelles très mal. Ils sont cependant encore utilisés pour créer des méthodes d'extension, l'ajout de ceux à l'espace de noms global est l'effet recherché.

Les classes de superposition nécessitent une compréhension de la programmation orientée objet. Cela ne peut raisonnablement tenir dans un post SO, il existe de nombreux livres d'introduction qui vous aident dans le grok.

+2

Les modules sont l'équivalent des classes statiques C# et la seule façon d'écrire des méthodes d'extension dans VB, donc ils ont encore des utilisations pour de nouveaux programmes. –

+0

Vous avez un point, post mis à jour. –

0

Je suis d'accord avec Tim Schmelter. Bien qu'il existe encore des utilisations de modules pour les méthodes d'extension, puisque vous apprenez les principes de la POO, respectez les classes. Avec les classes, vous pouvez vraiment profiter des 3 piliers de la POO (Encapsulation, Héritage et Polymorphisme) sans penser aux modules qui peuvent ajouter à la confusion à ce stade de l'apprentissage.