Quero converter um DateTime ( DateTime?
) anulável em um DateTime
, mas estou recebendo um erro:
Não é possível converter implicitamente o tipo 'System.DateTime?' para 'System.DateTime'. Existe uma conversão explícita (você está perdendo um elenco?)
Eu tentei o seguinte:
DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null
? DateTime.Now : _objHotelPackageOrder.UpdatedDate;
memDateLogin = m.memDateLogin ?? DateTime.MinValue
A Microsoft já criou um método para isso, então você não precisa usar o operador coalescente nulo. Não há diferença na funcionalidade, mas é mais fácil para os não especialistas entenderem o que está acontecendo rapidamente.
fonte
Tente isto
fonte
Você pode usar um elenco simples:
Como Leandro Tupone disse, você deve verificar se o var é nulo antes
fonte
Você precisa chamar a propriedade Value do DateTime anulável. Isso retornará um DateTime.
Supondo que
UpdatedDate
sejaDateTime?
, então isso deve funcionar:Para facilitar a leitura do código, você pode usar a propriedade HasValue em vez da
null
verificação:Isso pode ser feito ainda mais conciso:
fonte
Que tal o seguinte:
fonte
Aqui está um trecho que eu usei dentro de um Presenter preenchendo uma exibição com uma Data / Hora Anulável
fonte
Você também pode tentar Propriedades Nullable (T) :
fonte
Considere usar o seguinte, que é muito melhor do que a resposta aceita
fonte
Tente o seguinte:
fonte
fonte