【发布时间】:2012-09-21 09:05:17
【问题描述】:
我收到以下消息:
警告:字段永远不会分配给,并且始终具有其默认值 null。
我的代码看起来像(它被简化了,所以没用):
public class MyEntity
{
// ...
public string MyProp { get; set; }
}
public class MyClass
{
string dbMyProp;
public string MyProp { get { return dbMyProp.Replace("a", "b"); } }
public static readonly Expression<Func<MyEntity, MyClass>> FromMyEntity = e => new MyClass
{
dbMyProp = e.MyProp // ...
};
}
我认为消息不正确。
这是 C# 编译器中的错误还是我遗漏了什么?
更新字段是dbMyProp。它已简化,但仍会产生此警告。
UPDATE2以下代码不会产生这样的警告:
public class MyClass2
{
string dbMyProp;
public string MyProp { get { return dbMyProp.Replace("a", "b"); } }
public static MyClass2 FromMyEntity(MyEntity e)
{
return new MyClass2
{
dbMyProp = e.MyProp // ...
};
}
}
【问题讨论】:
-
如您所说,您的代码已简化,因此我们不一定能说出问题的原因。您也不包括针对哪个变量引发警告。
-
再次重新编辑 - 这一切都归结为您的原始代码是
Expression。Expression与通常的代码不同。 -
我看到了差异。这是对其他答案的回应。
标签: c# compiler-construction compiler-warnings