Ahm*_*gdy 21 c# attributes properties automatic-properties default-value
我有以下自动属性
[DefaultValue(true)]
public bool RetrieveAllInfo { get; set; }
Run Code Online (Sandbox Code Playgroud)
当我尝试在代码中使用它时我发现默认的false假设是因为我认为这是bool变量的默认值,有没有人知道什么是错的!?
Phi*_*ert 34
DefaultValue属性仅用于告诉Visual Studio设计者(例如在设计表单时)属性的默认值.它不会在代码中设置属性的实际默认值.
更多信息:http://support.microsoft.com/kb/311339
Mar*_*ell 15
[DefaultValue]仅由(例如)序列化API(如XmlSerializer)和一些UI元素(如PropertyGrid)使用.它没有设置值本身; 你必须使用一个构造函数:
public MyType()
{
RetrieveAllInfo = true;
}
Run Code Online (Sandbox Code Playgroud)
或手动设置字段,即不使用自动实现的属性:
private bool retrieveAllInfo = true;
[DefaultValue(true)]
public bool RetrieveAllInfo {
get {return retrieveAllInfo; }
set {retrieveAllInfo = value; }
}
Run Code Online (Sandbox Code Playgroud)