如何在get accessor块运行时获取当前属性值? 我试图处理这样的事情:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? birthDate
{
get
{
return CommonClass.GetDT(birthDate);
}
set
{
birthDate = CommonClass.GetDT(value);
}
}
public class CommonClass
{
public static DateTime? GetDT(DateTime v)
{
if (v == DateTime.MinValue)
{
return null;
}
else
{
return v;
}
}
public static DateTime? GetDT(DateTime? v)
{
if (!v.HasValue)
{
return null;
}
else
{
return v;
}
}
}
但这段代码已被粉碎。但是如果你查看微软的教程,你可以看到一些允许使用自我属性值的样本:
public string Name
{
get
{
return name != null ? name : "NA";
}
}
答案 0 :(得分:4)
变量和方法名称区分大小写,这意味着“名称”和“名称”不同。
private string name; // the name field
public string Name // the Name property
{
get
{
return name;
}
}
所以改变你的
private DateTime? birthDate
public DateTime? BirthDate
{
get
{
return CommonClass.GetDT(birthDate);
}
set
{
birthDate = CommonClass.GetDT(value);
}
}
答案 1 :(得分:1)
属性的get和set访问器只是方法。它们相当于: -
public string get_Name()
{
...
}
public void set_Name(string value)
{
...
}
一旦你想到这些,你会发现他们并没有什么特别之处。没有特殊的“自我”或“当前价值”。
在第二个代码示例中,必须有一个名为“name”的字段,用于存储属性的值。这个,而不是别的,是该物业的“当前价值”。