VB.NET質問スレ (Part11)
■ このスレッドは過去ログ倉庫に格納されています
0246最凶VB厨房
2005/05/07(土) 03:31:36これって俺のことなの?単純なのは全くその通りだけどさ
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型としたことが間違いだった。
ということに気づくことにならないだろうか?
このレスは当然のことながらスルー、透明あぼーんなどしてもらって構いません。
■ このスレッドは過去ログ倉庫に格納されています