Saya ingin mengonversi DateTime yang dapat dibatalkan ( DateTime?
) menjadi DateTime
, tetapi saya mendapatkan kesalahan:
Tidak dapat secara implisit mengonversi tipe 'System.DateTime?' ke 'System.DateTime'. Konversi eksplisit ada (apakah Anda melewatkan gips?)
Saya telah mencoba yang berikut ini:
DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null
? DateTime.Now : _objHotelPackageOrder.UpdatedDate;
memDateLogin = m.memDateLogin ?? DateTime.MinValue
MS sudah membuat metode untuk ini, jadi Anda tidak perlu menggunakan operator penggabungan nol. Tidak ada perbedaan dalam fungsionalitas, tetapi lebih mudah bagi non-ahli untuk mendapatkan apa yang terjadi secara sekilas.
sumber
Coba ini
sumber
Anda dapat menggunakan gips sederhana:
Seperti yang dikatakan Leandro Tupone, Anda harus memeriksa apakah var itu nol sebelumnya
sumber
Anda perlu memanggil properti Value dari DateTime yang dapat dibatalkan. Ini akan mengembalikan DateTime.
Dengan asumsi bahwa
UpdatedDate
adalahDateTime?
, maka ini harus bekerja:Untuk membuat kode sedikit lebih mudah dibaca, Anda bisa menggunakan properti HasValue daripada
null
memeriksa:Ini dapat dibuat lebih ringkas:
sumber
Bagaimana dengan yang berikut:
sumber
Berikut adalah cuplikan yang saya gunakan dalam Presenter yang mengisi tampilan dengan Tanggal / Waktu Nullable
sumber
Anda juga dapat mencoba Properti Nullable (T) :
sumber
Pertimbangkan untuk menggunakan yang berikut ini yang jauh lebih baik daripada jawaban yang diterima
sumber
Coba ini:
sumber
sumber