Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字段modifyDate从未指定给,并且始终具有其默认值0_C#_Debugging_Compiler Warnings - Fatal编程技术网

C# 字段modifyDate从未指定给,并且始终具有其默认值0

C# 字段modifyDate从未指定给,并且始终具有其默认值0,c#,debugging,compiler-warnings,C#,Debugging,Compiler Warnings,有人能给我解释一下为什么我会收到这个警告吗?我已经对代码进行了测试,它运行正常,我得到了应该得到的值。这是一个错误的警告还是我遗漏了什么 [DataMember(Name = "modifyDate")] private long modifyDate; public DateTime lastModified { get { return DateTimeConverter.FromUnixTime(modifyDate); } } 这是一个编译器警告,这意味着编

有人能给我解释一下为什么我会收到这个警告吗?我已经对代码进行了测试,它运行正常,我得到了应该得到的值。这是一个错误的警告还是我遗漏了什么

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

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

这是一个编译器警告,这意味着编译器在编译时找不到任何会赋值的代码。但是,仍有可能在运行时分配值。在您的例子中,这是由
DataContractJsonSerializer
完成的

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

#pragma warning disable 0649
在受影响的代码行和

#pragma warning restore 0649
在代码行之后

通常,您还应该添加一条注释,说明使用该pragma指令的原因,例如

// This field is assigned to by JSON deserialization

那么,您希望设置什么值?也许,这是由思考决定的吗?(请注意,属性名称应以大写字母开头,以遵循.NET命名约定。)我使用的是DataContractJsonSerializer。我是C#的新手,不得不说命名惯例让我很恼火。我希望每个变量都以大写字母和驼峰大小写开头。对-这就是设置值的原因,您可以禁用警告并添加解释性注释。您能告诉我如何做到这一点吗?那么你同意这是一个错误的警告吗?搜索#pragma warning disable很棒的答案。这既解释了我为什么会收到警告,也解释了如何防止它。谢谢