Bonjour,
J'ai une erreur de compilation que j'ai du mal à comprendre. Voilà le code:
ExamDate est du type System.DateTime? et inf.ExamDate de type System.Datetime.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ExamDate = inf.ExamDate.ToOADate() == 0.0 ? null : inf.ExamDate;
A la compilation, j'ai l'erreur:
Si j'écrisErreur 1 Le type d'expression conditionnelle ne peut pas être déterminé, car il n'existe pas de conversion implicite entre '<null>' et 'System.DateTime'
Aucune erreur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (inf.ExamDate.ToOADate() == 0.0) ExamDate = null; else ExamDate = inf.ExamDate;
Ça me parait pourtant être la même chose.
Pourtant, il y a forcément une différence sinon C# ne râlerait pas.
Par contre, si je fais ça:
Plus d'erreur non plus !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ExamDate = inf.ExamDate.ToOADate() == 0.0 ? null : (System.DateTime?)inf.ExamDate;
Ce qui voudrait dire que je ne peux assigner à mon ExamDate qu'une valeur de type System.DateTime? Pourtant:
compile sans problème !
Code : Sélectionner tout - Visualiser dans une fenêtre à part ExamDate = inf.ExamDate;
J'ai beau ouvrir les yeux et me gratter la tète, je ne comprends pas !
Papy !
Partager