Posso creare un metodo di estensione per tutte le sottoclassi di System.Object
(tutto)?VB.NET: impossibile utilizzare il metodo di estensione sull'istanza System.Object
Esempio:
<Extension>
Public Function MyExtension(value As Object) As Object
Return value
End Function
Le funzioni di cui sopra non funziona per istanza di oggetto:
Dim myObj1 As New Object()
Dim myObj2 = myObj1.MyExtension()
Il compilatore non lo accetta, è il problema nel mio computer? :)
UPDATE
Il problema sembra verificarsi solo in VB, dove i membri di oggetto sono guardato-up per riflessione (late-bound).
AGGIORNAMENTO DOPO RISPOSTO
FYI, come VB ha un vantaggio che C# manca cioè membri di moduli importati vengono importati per la portata globale in modo da poter ancora utilizzare queste funzioni senza il loro involucro:
Dim myObj2 = MyExtension(myObj1)
Avete provato questo codice? La terza riga (someObj) non funziona per me. – Shimmy
Sì, questo funziona per me. Come hai scritto la tua versione del metodo di estensione IsIn()? Ho modificato il mio post per includere la mia implementazione per aiutarti. – mattmc3
Se hai digitato 'someObj' come' Object' nel tuo codice, allora questo sicuramente dovrebbe * not * funzionare per te. –