¿Puedo hacer un método de extensión para todas las subclases de System.Object
(todo)?VB.NET: imposible de usar Método de extensión en System.Object instancia
Ejemplo:
<Extension>
Public Function MyExtension(value As Object) As Object
Return value
End Function
Las funciones anteriores no funcionarán para instancia de objeto:
Dim myObj1 As New Object()
Dim myObj2 = myObj1.MyExtension()
El compilador no lo acepta, es el problema en mi equipo? :)
ACTUALIZACIÓN
El problema parece ocurrir sólo en VB, donde los miembros del objeto son vistos en marcha por la reflexión (late-bound).
AFTER UPDATE ANSWERED
FYI, como VB tiene una ventaja que C# carece es decir, los miembros de los módulos importados se importan al ámbito mundial por lo que aún puede utilizar estas funciones sin su envoltorio:
Dim myObj2 = MyExtension(myObj1)
¿Se han probado este código? La tercera línea (someObj) no funciona para mí. – Shimmy
Sí, esto funciona para mí. ¿Cómo escribiste tu versión del método de extensión IsIn()? He editado mi publicación para incluir mi implementación para ayudarte. – mattmc3
Si escribió 'someObj' como' Object' en su código, entonces definitivamente * no * debería funcionar para usted. –