Can I make an Extension method for all the subclasses of System.Object
(everything)?
Example:
<Extension>
Public Function MyExtension(value As Object) As Object
Return value
End Function
The above functions won't work for object instance:
Dim myObj1 As New Object()
Dim myObj2 = myObj1.MyExtension()
The compiler does not accept it, is the problem in my computer? :)
UPDATE
The problem seems to occur only in VB, where members of object are looked-up by reflection (late-bound).
UPDATE AFTER ANSWERED
FYI, as vb has an advantage that C# lacks that is, members of imported Modules are imported to the global scope so you can still use this functions without their wrapper:
Dim myObj2 = MyExtension(myObj1)
It seems like not supporting Extension methods on Object was a design decision in VB.
As a result, the only way we could prevent extension methods from completely breaking existing late bound code was to prevent them from being used on anything typed as object.