Héritage des classes en langage C# dans SOLIDWORKS

L’article suivant décrit comment utiliser Visual Studio et le langage C# pour adapter les classes déjà créées dans le tech tip précédent afin que celles-ci soient hérités. Cela devrait clarifier la gestion de l’héritage et faciliter la compréhension. A cet effet, 3 classes sont créées pour les différents types de fichiers “SLDPRT”, “SLDASM”, “SLDDRW”. Celles-ci sont ensuite utilisées par une classe principale.

1 Introduction

Si des applications sont écrites pour Solidworks, il peut arriver rapidement que le code soit simplement écrit dans une classe ou que le code apparaisse deux fois. Au final il est possible que plus personne ne puisse le lire. Nous pouvons donc utiliser une autre fonction qui s’appelle l’héritage. Cela permet de construire des hiérarchies afin d’utiliser facilement des méthodes déjà mises à disposition par d’autres classes.

2 Qu'est-ce que l'héritage ?

L’héritage est l’une des fonctions les plus importantes de la programmation orientée objet.

L’héritage est structuré de telle manière qu’il existe une classe de base et plusieurs classes dérivées. Un exemple classique est l’« animal » comme classe de base et le « chat » et le « chien » comme classe dérivée. L’animal a, par exemple, la propriété de l’âge ou de la couleur. Étant donné que les chiens et les chats sont dérivés de la classe animale, ces propriétés sont disponibles à la fois pour le chien et le chat. Le chien et le chat peuvent désormais avoir des méthodes différentes, comme les sons qu’ils font. Le chien aboie et le chat miaule. Un exemple de ceci peut être vu dans la figure 1

3 Considération préliminaire

Le but de cet article est de créer une classe de base, SolidworksFile. Chaque fichier Solidworks a, par exemple, la propriété qu’il a un chemin ou que le fichier contient un nom. La méthode GetFileType() existante est intégrée en tant que méthode. Nous créons 3 classes différentes en tant que classes dérivées :

PartFile, AssemblyFile et DrawingFile. Cependant, l’héritage n’est présenté qu’à une seule classe.

4 Créer une classe

La classe SolidworksFile étant déjà disponible, une nouvelle classe est créée dans le même dossier. Cela commence par la classe PartFile.

Une fois qu’une classe vide a été créée, elle est héritée avec un double point après le nom de la classe, suivi du nom de la classe, qui doit être héritée.

Puisqu’un constructeur est utilisé dans la classe de base, il doit également être utilisé dans la classe dérivée existante. Le constructeur est créé de manière normale, mais un double-point avec le mot-clé “base” suit également. Ce mot-clé fait référence au constructeur de base et requiert également un paramètre, qui est spécifié entre parenthèses. La structure de la classe dérivée ressemble maintenant à la figure 2
Figure 2 : classe dérivée du framework PartFile

Dès que cela est fait, les méthodes de la classe de base peuvent déjà être utilisées. Dans la figure 3, la classe PartFile est utilisée et la méthode de la classe de base est appelée.

Figure 3 : Utilisation des méthodes de la classe de base

Une méthode peut maintenant être mise à disposition pour la classe dérivée. Ici, par exemple, une méthode peut être créée pour faire pivoter la pièce-pièce. Un exemple de méthode :


Figure 4 : Méthode Spin dans PartFile

Si un objet de la classe PartFile est maintenant instancié, cette méthode peut être utilisée. Cependant, cela n’est pas possible avec une instance de SolidworksFile.

5 Ecraser

Maintenant, il peut arriver, cependant, que la classe de base fournisse une méthode qui n’est pas autorisée à fonctionner dans la classe dérivée. Pour résoudre ce problème, il est possible d’écraser les méthodes.  Pour ce faire, la méthode doit d’abord être déclarée dans la classe de base avec le mot clé “virtual”, de sorte qu’il soit précisément spécifié que cette méthode peut être écrasée. Si le mot-clé est défini, la méthode ressemble à la figure 5.


Figure 5 : Méthode de virtualisation

Si la classe de base est écrite de cette façon, elle est maintenant disponible pour la classe dérivée pour l’écraser. Ceci s’exécute avec le mot clé “override”. Un exemple dans la classe PartFile peut être vu dans la figure 6.


Figure 6 : Ecrasement de la méthode

Ce qui est intéressant, c’est que les propriétés et les méthodes de la classe de base peuvent être utilisées à tout moment dans la classe dérivée. Pour ce faire, la classe de base est simplement appelée avec le mot-clé “base” puis la propriété ou la méthode souhaitée via un point.

6 CONCLUSION

En résumé, on peut maintenant dire que la classe de base est chargée de fournir aux classes héritées les fonctionnalités de base. Cela inclut les propriétés et les méthodes.

Les classes dérivées n’ont besoin que de compléter les méthodes spécifiques.

La fonctionnalité d’écrasement des méthodes est également très utile si une classe dérivée doit faire quelque chose de complètement différent de la méthode fournie dans la classe de base.

Auteur de l'article

Martin Möllenhoff, Développeur R&D chez Visiativ Solutions Switzerland

Quoi de neuf dans le monde de la CAO ?

Restez informé grâce à notre fil d’actualités alimenté régulièrement par nos experts métiers : des zooms sur les nouveautés produits, des trucs et astuces, des tutoriels, des témoignages, des top listes, des success stories, des photos et des comptes-rendus des évènements…

Restez informés sur nos prochains évènements, abonnez-vous à notre newsletter:

[iframe src=”https://p.visiativ.com/l/185642/2017-05-16/bt1x6″ width=”100%” height=”250″ type=”text/html” frameborder=”0″ allowTransparency=”true” style=”border: 0″>