バイナリ 'If' 演算子の 1 番目と 2 番目のオペランドの共通型を推論できません
更新 : 2007 年 11 月
エラー メッセージ
バイナリ 'If' 演算子の 1 番目と 2 番目のオペランドの共通型を推論できません。一方の型から他方の型への上位変換が必要です。
バイナリ If 演算子では、引数間に拡大変換が存在している必要があります。たとえば、Integer と String は、どちらの方向でも拡大変換にならないので、このエラーが発生します。
Dim first? As Integer
Dim second As String = "First is Nothing"
'' Not valid.
' Console.WriteLine(If(first, second))
エラー ID: BC33110
このエラーを解決するには
可能であれば、いずれか 1 つのオペランドの明示的な変換をコードの中で記述します。
Console.WriteLine(If(first, CInt(second)))
別の条件構造を使用してコードを書き直します。
If first IsNot Nothing Then Console.WriteLine(first) Else Console.WriteLine(second) End If