title: Implicit casting in VB.NET
body: <p>The question is intended for lazy VB programmers. Please.</p>
  
  <p>In vb I can do and I won't get any errors.</p>
  
  <p>Example 1</p>
  
  <pre><code>Dim x As String = 5
  Dim y As Integer = "5"
  Dim b As Boolean = "True"
  </code></pre>
  
  <p>Example 2</p>
  
  <pre><code>Dim a As EnumType = 4
  Dim v As Integer = EnumType.EnumValue
  </code></pre>
  
  <p>Example 3</p>
  
  <pre><code>Private Sub ButtonClick(sender As Object, e As EventArgs)
      Dim btn As Button = sender        
  End Sub
  </code></pre>
  
  <p>Example 4</p>
  
  <pre><code>Private Sub ButtonClick(sender As Button, e As EventArgs)
      Dim data As Contact = sender.Tag
  End Sub
  </code></pre>
  
  <p>If I surely know the expected runtime type, is this 'forbidden' to rely on the vb-language built-in casting?
  When can I rely?</p>