Les opérateurs sous VB.NET
Voici, trouvée par hasard, la liste des opérateurs définissables (en tout cas reconnus par les Services de compilation) :
Friend Enum UserDefinedOperator As SByte
[And] = 20
Concatenate = 14
Divide = 11
Equal = &H16
Greater = &H1B
GreaterEqual = &H1A
IntegralDivide = 13
IsFalse = 4
IsTrue = 3
Less = &H18
LessEqual = &H19
[Like] = &H15
MAX = &H1C
Minus = 9
Modulus = &H11
Multiply = 10
Narrow = 1
Negate = 5
[Not] = 6
NotEqual = &H17
[Or] = &H12
Plus = 8
Power = 12
ShiftLeft = 15
ShiftRight = &H10
UnaryPlus = 7
UNDEF = 0
Widen = 2
[Xor] = &H13
End Enum |
Vous remarquez comme moi que CType ne se trouve pas dans la liste.
C’est normal, car il est divisé en deux types de conversion : Narrow et Widen
Par contre, si quelqu’un pouvait me renseigner sur les opérateurs suivants, ce serait pas mal :
- MAX
- Plus vs UnaryPlus
- UNDEF
Je n’espère pas trop du côté de la MSDN, vu que cela se trouve dans des parties cachées de .NET, donc il n’y a surement aucune documentation sur le sujet…
Par ailleurs, lorsque vous définissez des opérateurs particuliers (Like, …) en VB, la méthode utilisée pour les appeler est la suivante (vous pouvez donc l’utiliser dans vos développements quand vous utilisez la Reflection, surtout qu’il y a d’autres méthodes pour tester si un objet supporte ou pas un opérateur donné) :
Microsoft.VisualBasic.CompilerServices.Operators.InvokeUserDefinedOperator
(
ByVal Op As UserDefinedOperator,
ByVal ParamArray Arguments() As Object
) As Object
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
François REMY est un jeune développeur belge plein d'entrain qui traite surtout des technologies du web et de DotNet dans ses articles.