title: VB.NET: impossible to use Extension method on System.Object instance
body: <p>Can I make an Extension method for all the subclasses of <code>System.Object</code> (everything)?</p>
  
  <p>Example:</p>
  
  <pre><code>&lt;Extension&gt;
  Public Function MyExtension(value As Object) As Object
      Return value
  End Function
  </code></pre>
  
  <p>The above functions won't work for object instance:</p>
  
  <pre><code>Dim myObj1 As New Object()
  Dim myObj2 = myObj1.MyExtension()
  </code></pre>
  
  <p>The compiler does not accept it, is the problem in my computer? :)</p>
  
  <p><strong>UPDATE</strong><br>
  The problem seems to occur only in VB, where members of object are looked-up by reflection (<a href="http://visualbasic.about.com/od/usingvbnet/a/earlybind.htm" rel="noreferrer"><strong>late-bound</strong></a>).</p>
  
  <p><strong>UPDATE AFTER ANSWERED</strong><br>
  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:</p>
  
  <pre><code>Dim myObj2 = MyExtension(myObj1)
  </code></pre>