c# – if中的out参数被认为是未分配的

参见英文答案 >
Why does this (null || !TryParse) conditional result in “use of unassigned local variable”?                                    3个

我有这段代码:

//EDIT
DateTime finalDate;
Dictionary<string, string> a = new Dictionary<string, string>() { { "a", "2016-04-14T11:56:56.0319859+02:00" } };
string dateStr;
DateTime date;
if (json.TryGetValue("a", out dateStr) && DateTime.TryParse(dateStr, out date))
{
   finalDate = date;
}

但我在if“使用未分配的局部变量’myDate’”中有错误.
如果我没有错,如果执行此部分,myDate必须由TryParse分配(技术上即使条件为假也应该分配),如果我将TryParse放在其中,如果它有效.
有没有办法告诉编译器它没问题?

最佳答案 解决了这个评论:

我猜你没有提到的重要部分是json被声明为动态的.在这种情况下,这是一个已知问题.

由Damien_The_Unbeliever

点赞