1

メンバ クラスで DOB プロパティが null 許容の DateTime として定義されていますか?:

public DateTime? DOB
{
    get
    {
        var o = base.GetPropertyValue("memberDOB");
        if (o == DBNull.Value)
        {
            return null;
        }
        return (DateTime?)o;
    }
    set
    {
        base.SetPropertyValue("memberDOB", value);
    }
}

値がnullで、null可能かどうかを確認しようとしている場合-キャストが無効であると言い続けます:

if((DateTime)_currentProfile.DOB == null)
    txtDOB.Text = _currentProfile.DOB.ToString();

で試しました

TryParse(_currentProfile.DOB.ToString(), out dob)

_currentProfile.DOB == null

_currentProfile.DOB.ToString()

(DateTime)_currentProfile.DOB

どちらも機能しません-常にキャストが無効であると表示されます。

理由がよくわかりません。

何か案は?ありがとうございました

4

2 に答える 2

1

DateTimeNullableをそのようなものにキャストするだけではいけません DateTime。null の場合は壊れます。

を使用DateTime.HasValueし、DateTime.Valueそれが true を返す場合。

于 2013-09-02T13:43:55.487 に答える
-1

にキャストしていますがDateTime、これは値型であり、これまでにできませんnull

DateTime?をチェックしたい場合はにキャストするかnull、キャストせずに直接チェックします。

if(_currentProfile.DOB.HasValue)
    txtDOB.Text = _currentProfile.DOB.ToString();

値がある場合は、それを使用できることに注意してください。元のコードが逆になっているようです。

于 2013-09-02T13:08:24.697 に答える