>それを「キャストの問題」っていう風に短絡する単純な人がいるわけだ。
これって俺のことなの?単純なのは全くその通りだけどさ
Option Strict Off
Public Class EntryPoint
  Shared Sub Main()
    Dim pochi As Object = New Dog()
    pochi.Naku()
    '↑ONならコンパイルエラーOFFだと実行可能。
    'これがレイトバインディング便利だなということはできる。
    pochi.Habataku()
    '↑ONならコンパイルエラーOFFだと実行時エラー
    'OFFだとHabatakuメソッドがあると思っている勘違いや単なるスペルミスを
    'コンパイル時に検出できない!!(=実行してはじめてわかる)
    CType(pochi, Dog).Naku()
    '↑ON,OFF共に実行可能
    'pochi.Naku()よりはみにくくなると言っていいと思う。
    CType(pochi, Dog).Habataku()
    '↑ONOFF両方ともコンパイルエラー
  End Sub
End Class
Public Class Dog
  Public Sub Naku()
    Console.WriteLine("")
  End Sub
End Class
ONのメリットは潜在的なエラーをコンパイル時に検出できる。(=デバッグのしやすさ)
(あと速度とか。でもエラーが無いと言うことはできないけどね)
デメリットはキャストがめんどくさい。(オーバーロードとかでもどうかな?)
でもめんどくさいってことは何か間違えてたんじゃないですか?という意味でもあって
この場合はpochiを最初にObject型としたことが間違いだった。
ということに気づくことにならないだろうか?
このレスは当然のことながらスルー、透明あぼーんなどしてもらって構いません。