私はアプリケーションをレビューしていますが、どちらがエラーを起こしやすいのでしょうか?どちらがエラーをスローする傾向がありますか?
Public Function ToBool(ByVal vsValue As String) As Boolean
If IsNothing(vsValue) OrElse vsValue = "" Then
Return False
End If
If UCase(vsValue) = "TRUE" Or vsValue = "1" Or UCase(vsValue) = "Y" Or UCase(vsValue) = "YES" Or UCase(vsValue) = "T" Then
Return True
Else
Return False
End If
End Function
又は
Public Function ToBool(ByVal vsValue As String) As Boolean
If IsNothing(vsValue) OrElse vsValue = "" Then
Return False
ElseIf UCase(vsValue) = "TRUE" Or vsValue = "1" Or UCase(vsValue) = "Y" Or UCase(vsValue) = "YES" Or UCase(vsValue) = "T" Then
Return True
Else
Return False
End If
End Function
自分の関数を書くのではなく、単に 'CBool'を使うのはなぜですか? – JaredPar
"T"、1などのようにTrueとみなされる別の値があるため、これらの値が割り当てられているかどうかをチェックしているため、Trueと見なされます。 – Tarik
この質問に対する答えと無関係なコメントと同様に、上記のコードについていくつか考慮すべきです:1)文字列の大文字と小文字を実際に変更する代わりに、 'String.Equals(vsValue、" True "、true)変数。 2)上記のようにしたいのであれば、 'UCase'の結果をローカル変数に格納して、一度だけ行うようにします。3)VB固有の' UCase'関数を使うのではなく、 vsValue.ToUpper() ' –