代码改变世界

XPO基础----简化的属性语法:

2011-10-21 16:18  OOA  阅读(407)  评论(0编辑  收藏  举报

首先我们看一个标准的属性语法

        private  DateTime orderdate;
public DateTime OrderDate
{
get { return orderdate; }
set
{
if (orderdate != value)
{
DateTime OldValue = orderdate;
orderdate = value;
OnChanged("OrderDate",OldValue,orderdate);
}
}
}

具体过程就是:先声明一个私有字段,然后 声明一个相应的属性,然后写get访问器。写set访问器的时候,先判断值是否有改变如果有就改变私有字段的值为value,并且接着调用OnChanged()方法

从XPO的6.3.1版本以后,我们有了现代方法类实现属性声明,即,SetPropertyValue()和GetPropertyValue()方法。

setPropertyValue()方法提供了一种简单的属性访问器的实现方法。这方法有三个参数(属性名,ref 属性对应的字段,value值)。方法在内部,先检查属性值是否有更改,如果有保存原来的值,并赋属性新值,然后属性更改事件被激发。

        private  DateTime orderdate;
public DateTime OrderDate
{
get { return orderdate; }
set { SetPropertyValue("OrderDate", ref orderdate, value); }
}


GetPropertyValue()方法 允许你省去私有成员的声明。这样呢,在实现Set访问器的时候就需要用SetPropertyValue()方法的另一个重载,这个重载只有两个参数:属性的名称,value值。

        public DateTime OrderDate
{
get { return GetPropertyValue<DateTime>("OrderDate"); }
set { SetPropertyValue("OrderDate", value); }
}