Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Les foncteurs

Utiliser un objet comme une fonction.
Voici la définition d'un foncteur selon wiktionary : 
Foncteur.
Entité qui réunit les qualités d’objet et de fonction dans le cadre d’une programmation par objets. 
https://fr.wiktionary.org/wiki/foncteur
Description.
C'est un objet qui se comporte comme une fonction. C'est plus puissant qu'une simple fonction car, un foncteur étant un objet, il permet de stocker des paramètres dans ses attributs (propriétés, variables internes).
Toute fonction peut être transformée en foncteur. Le code est ainsi bien organisé. 
Exemple.
Voici un exemple avec des opérations arithmétiques. 
La classe de base s'appelle "COperator". Elle représente un opérateur (+, -, *, /, ...). 
' Gambas class file
' COperator
Property Read OperatorName As String
Private $sOperatorName As String
Public Sub _compare(hOther As COperator) As Integer
 Return String.Comp(Me.OperatorName, hOther.OperatorName, gb.IgnoreCase)
End
Private Function OperatorName_Read() As String
 Return $sOperatorName
End
Public Sub SetOperatorName(Value As String)
 $sOperatorName = Value
End
Static Public Sub _call(iLeft As Integer, iRight As Integer) As Integer
 Error.Raise("Not implemented. You have to implement a new class with inheritance! ")
End
Je spécialise la classe en créant la classe dérivée COperatorPlus représentant l'opérateur + servant à faire des additions. 
' Gambas class file
' COperatorPlus
Inherits COperator
' constuctor
Public Sub _new()
 Me.SetOperatorName("+")
End
Static Public Sub _call(iLeft As Integer, iRight As Integer) As Integer
 Return iLeft + iRight
End
Enfin, voici une utilisation possible dans le code : 
Public Sub Main()
 Dim addition As New COperatorPlus
 Dim result As Integer
 result = addition(3, 4)
 Print result
End
Que de progrès les amis !

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Les méthodes spéciales

Les méthodes spéciales.
Vous avez déjà utilisé quelques méthodes spéciales : 
Vous allez voir dans les wikipages qui suivent d'autres méthodes spéciales : 
Et sachez qu'il y a encore d'autres événements spéciaux : 
Le wiki officiel en parle : ici. 
Vous les connaissez et vous savez quand les employer. C'est bien !

Électronique/Les transistors à effet de champ