什么是VB.Net"IsDBNull"的C#等价物

Cha*_*hoo 10 c# vb.net

在VB.Net中你可以写:

If Not IsDBNull(oCustomerNameDataRow(0)) Then
    cbCustomerName.Items.Add(oCustomerNameDataRow(0).ToString
End If
Run Code Online (Sandbox Code Playgroud)

C#中的方法IsDBNull相当于什么?

Дми*_*тик 11

if (!DBNull.Value.Equals(oCustomerNameDataRow[0]))
{
  //something
}
Run Code Online (Sandbox Code Playgroud)

MSDN(DBNull.Value)


Bjø*_*sjå 6

我会说相当于位于Microsoft.VisualBasic汇编中的IsDBNull方法(Microsoft.VisualBasic.Information)

Public Function IsDBNull(ByVal Expression As Object) As Boolean
    If Expression Is Nothing Then
        Return False
    ElseIf TypeOf Expression Is System.DBNull Then
        Return True
    Else
        Return False
    End If
End Function
Run Code Online (Sandbox Code Playgroud)
Dim result As Boolean = IsDBNull(Nothing)
Run Code Online (Sandbox Code Playgroud)

是位于mscorlib汇编中的IsDBNull方法(System.Convert):

public static bool IsDBNull(object value) {
    if (value == System.DBNull.Value) return true;
    IConvertible convertible = value as IConvertible;
    return convertible != null? convertible.GetTypeCode() == TypeCode.DBNull: false;
}
Run Code Online (Sandbox Code Playgroud)
bool result = System.Convert.IsDBNull(null);
Run Code Online (Sandbox Code Playgroud)