get访问器中的当前属性值
本文关键字:属性 访问 get | 更新日期: 2023-09-27 18:02:16
如何获得当前属性值,而获取访问块正在运行?我试着这样处理:
[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;
}
}
}
但是这段代码被排除了。但是如果你看一下微软的教程你会看到一些例子允许使用self property value:
public string Name
{
get
{
return name != null ? name : "NA";
}
}
这里的
变量名和方法名是区分大小写的,这意味着"name"answers"name"是不同的。
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);
}
}
属性的get和set访问器只是方法。它们相当于:-
public string get_Name()
{
...
}
public void set_Name(string value)
{
...
}
一旦你像那样思考它们,你就会发现它们没有什么特别之处。没有特殊的"self"或"current value"。
在第二个代码示例中,必须有一个名为'name'的字段用于存储属性的值。这就是该属性的"当前值"。