私有类中的公共字段:“Field [FieldName]永远不会分配给,并且将始终具有其默认值null”

时间:2012-09-12 23:02:09

标签: c# linq-to-sql null compiler-warnings default-value

我有一个看起来像这样的私人课程:

private class PocoUserWithResourceId
{
    public USER User;
    public string ResourceId;
}

我使用这个类(在相同的封装公共类中),比如:

var uQuery = from u in db.USERS.All()
select new PocoUserWithResourceId {User = u, ResourceId = arv.Resource_Id};

我收到了警告:

  

字段'PocoUserWithResourceId.ResourceId'永远不会分配给,和   将始终具有其默认值null

我错过了什么?我在LINQ to SQL代码中分配值。

2 个答案:

答案 0 :(得分:4)

  

是不是因为我在分配期间分配了属性值   声明编译器没有看到我正在使用的事实   它们?

不,这只是因为您分配了field个值,而不是property个值......

您可以选择两种良好做法:
- 使用构造函数
- 使用访问者(属性)

答案 1 :(得分:0)

您可以使用#pragma

暂时禁用特定案例的警告
// turn it off
#pragma warning disable 0649
private class Foo
{
   public string FieldName
}
// turn it back on
#pragma warning restore 0649

要确定错误编号是什么,请检查原始输出或右键单击警告并选择“显示错误帮助”。即使页面本身与警告无关,您也会发现URL中隐藏的错误(CS0649)。