title: How to pass String by reference in VB.NET
body: <p>I actually can't believe I wasn't able to find an answer to something like this.</p>
  
  <pre><code>Public NotInheritable Class Tester
      Public Shared Sub changeText(ByVal TextBoxControl As Windows.Forms.TextBoxBase)
          Dim testString As String = TextBoxControl.Text
          testString = "Changed!"
      End Sub
  End Class
  </code></pre>
  
  <p>I'd expect <code>testString</code> to be a pointer to <code>TextBoxControl.Text</code>. However, <code>TextBoxControl.Text</code> is not changed. Instead, it appears </p>
  
  <pre><code>Dim testString As String = TextBoxControl.Text
  </code></pre>
  
  <p>is equivalent to </p>
  
  <pre><code>Dim testString As String = TextBoxControl.Text.Clone()
  </code></pre>
  
  <p>but I don't want that behavior. I just want a reference to <code>TextBoxControl</code>'s <code>Text</code> property. Can I do this? Why isn't the string passed by reference?</p>