if中的out参数被视为未分配

时间:2016-06-15 08:35:36

标签: c#

我有这段代码:

//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放在其中,如果它有效。 有没有办法告诉编译器它没问题?

2 个答案:

答案 0 :(得分:1)

通过此评论解决:

I would guess that the important part you haven't mentioned is that json is declared as dynamic. This is a known issue in such a case.

通过Damien_The_Unbeliever

答案 1 :(得分:0)

保证设置 - 如果不满足第一个条件,if语句会被短路。

您需要将myDate设置为值

 DateTime myDate = DateTime.MinValue;