Ne pas faire if (1 == 1)
? Sérieusement si le compilateur vous donne cette erreur c'est soit parce que votre code est faux, soit parce que c'est trop complexe et pourrait être mieux exprimé d'une autre manière où vous n'avez pas besoin d'accéder à des variables non assignées.
Pouvez-vous trouver un exemple réel où vous obtenez cette erreur où il n'y a pas de solution évidente en faisant un simple refactoring? Cela rendrait votre question plus responsable.
Cela dit que si vous ne courez dans une de ces situations, il y a quelques autres approches que vous pouvez utiliser:
DateTime CurrentDate = DateTime.MaxValue;
DateTime CurrentDate = default(DateTime);
DateTime? CurrentDate = null;
J'aime la dernière option, car elle exprime ce que vous voulez dire - que vous ne connaître la valeur. Cela rend le code un peu plus détaillé, car vous disposez d'un niveau de redirection supplémentaire chaque fois que vous souhaitez accéder à une valeur. Vous pouvez utiliser le temps passé à taper .Value
pour déterminer si vous avez correctement géré la situation où elle pourrait être nulle.
Également: Avez-vous considéré que la valeur de DateTime.Now
pouvait changer entre le premier et le deuxième appel? Cette déclaration finale if
semble ne pas faire ce que vous vouliez.
Quel compilateur utilisez-vous? –