Quelqu'un pourrait-il expliquer pourquoi cela fonctionne en C # .NET 2.0:
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
... mais ce n'est pas le cas:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
Cette dernière forme me donne une erreur de compilation "Le type d'expression conditionnelle ne peut pas être déterminé car il n'y a pas de conversion implicite entre '<null>' et 'System.DateTime'."
Non pas que je ne puisse pas utiliser l'ancien, mais le second style est plus cohérent avec le reste de mon code.