VB.NET: impossível usar o método de extensão na instância System.Object
Posso criar um método de extensão para todas as subclasses deSystem.Object
(tudo)?
Exemplo:
<Extension>
Public Function MyExtension(value As Object) As Object
Return value
End Function
As funções acima não funcionarão para a instância do objeto:
Dim myObj1 As New Object()
Dim myObj2 = myObj1.MyExtension()
O compilador não o aceita. O problema está no meu computador? :)
ATUALIZAR
O problema parece ocorrer apenas no VB, onde membros do objeto são pesquisados por reflexão (atrasado)
ATUALIZAÇÃO APÓS RESPOSTA
Para sua informação, como o vb tem uma vantagem que não possui o C #, os membros dos Módulos importados são importados para o escopo global, portanto você ainda pode usar essas funções sem o invólucro:
Dim myObj2 = MyExtension(myObj1)