Puis-je faire une méthode Extension pour toutes les sous-classes de System.Object
(tout) ?
Exemple :
<Extension>
Public Function MyExtension(value As Object) As Object
Return value
End Function
Les fonctions ci-dessus ne fonctionneront pas pour l'instance objet :
Dim myObj1 As New Object()
Dim myObj2 = myObj1.MyExtension()
Le compilateur ne l'accepte pas, le problème est-il dans mon ordinateur ? :)
UPDATE
Le problème semble se produire uniquement en VB, où les membres de l'objet sont consultés par réflexion ( en retard ).
MISE À JOUR APRÈS RÉPONSE
Pour votre information, vb a un avantage que C# n'a pas, à savoir que les membres des modules importés sont importés dans la portée globale, ce qui vous permet d'utiliser ces fonctions sans leur enveloppe :
Dim myObj2 = MyExtension(myObj1)
0 votes
1) C'est maintenant possible en C# avec la fonction
using static <namespace.type>
pour importer des membres dans la portée actuelle. 2) Le problème semble se produire uniquement en VB, où les membres de l'objet sont consultés par réflexion. N'est-ce pas seulement vrai siOption Strict Off
?