今日は職場でかつてのデスマーチソースを拝見することになった。
正直言って関わりたくない案件なんだがどうしてもヘルプが必要だったらしい。
しょうがないから見てちょっとバグ直したりした。
このままなし崩し的に「おまえメインだから^^」とかにならなければいいが・・・orz
んで、このプロジェクトの中でよく分からんコードを発見した。
Sub hoge
combo1.SelectedIndex = GetIndex()
End Sub
Function GetIndex() As String
Dim ret As Integer
=なんかリターン値探る処理=
Return ret
End Function
一目見て何が悪いのかよくわからなかったけど、よくよく見ると整数型に値を入れるメソッドの戻り値が、文字列型で定義されているという謎w
しかもメソッド内部では1度も文字列型なんて使わないで、整数型をリターンしているという不条理。
VBの内部的にはこの記述は合法なようで、警告とか全くでなかったw
VBはコレがあるから嫌いだw
文字列A = 数値a とかの代入もOKだし、If 文字列A = 数値a って比較も合法ときたもんだ。
しかも"1" = 1の結果がTrueだもんね。気持ち悪すぎるw
VBはマジで何でもありだからなー。
たとえば下記のコード。
Dim A As Integer
Dim B As Integer
A = B = 1
AとBを1で初期化したいって処理なんだけど、これを実行したあとのAとBの値は・・・!?
結果は実行してのお楽しみw
なぜAとBの値があの結果なのかの理由を知るのにも何日もかかったよ。。。
コレばっかりはVBの仕様だから糞とは言えないが他言語経験者は気をつけようw
- 関連記事
-
- http://frommii.blog28.fc2.com/tb.php/1023-fc5ebcfe
当ブログへのトラックバックは記事もしくはブログトップへのリンクが必要となります。
また、当ブログへのリンクの無いトラックバックは削除する事があります。あらかじめご了承ください。
0件のトラックバック
コメントの投稿
現在"http://"を投稿規制しております。URL記入の際はhttpを抜きにしてご記入ください。