以下のコード(本番コードではありません)はUse of unassigned local variable 'dateTime'
、それを見ると、戻り時に変数が割り当て解除されることは決してないことがわかります。Any句でoutパラメータを返すのは悪い形式ですが、なぜコンパイルできないのですか?
private static DateTime? ConvertStringToDateByFormat(string date) {
DateTime dateTime;
var acceptableDateFormats = new List<String>{
"d/MM/yyyy",
"d/M/yyyy",
"d/MM/yy",
"d/M/yy",
"d-MM-yyyy",
"d-M-yyyy",
"d-MM-yy",
"d-M-yy",
"d.MM.yyyy",
"d.M.yyyy",
"d.MM.yy",
"d.M.yy",
"d-MMM-yyyy",
"d-MMM-yy",
"d MMM yyyy",
"d MMM yy"
};
if (acceptableDateFormats.Any(format => DateTime.TryParseExact(date, format, CultureInfo.CurrentCulture, DateTimeStyles.None, out dateTime))) {
return dateTime;
}
else {
return null;
}
}