字段modifyDate永远不会分配给,并且始终具有其默认值0

时间:2015-04-12 14:18:10

标签: c# debugging compiler-warnings

有人可以向我解释为什么我会收到这个警告吗?我已经测试了代码并且它有效,我得到了我应该在那里获得的价值。这是一个错误的警告还是我缺少的东西?

[DataMember(Name = "modifyDate")]        
private long modifyDate;

public DateTime lastModified 
{
    get { return DateTimeConverter.FromUnixTime(modifyDate); }
}

1 个答案:

答案 0 :(得分:7)

这是一个编译器警告,这意味着编译器无法在编译时找到任何可以分配值的代码。但是,仍有可能在运行时中分配值。在您的情况下,这是由DataContractJsonSerializer完成的。

如果您知道,可以通过编写

来禁用警告
#pragma warning disable 0649

在受影响的代码行之前

#pragma warning restore 0649
在代码行之后

通常你也应该添加注释,为什么你要使用那个pragma指令,例如

// This field is assigned to by JSON deserialization