silverlight
11: }
12:
13: private static void OnValueChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
14: {
15: //当值改变时,我们可以在此做一些逻辑处理
16: }
17:
18: //属性包装器,通过它来读取和设置我们刚才注册的依赖属性 19: public string Sample
20: {
21: get { return (string)GetValue(SampleProperty); } 22: set { SetValue(SampleProperty, value); }
23: }
24: }
通过上面的例子可以看出,我们一般.NET属性是直接对类的一个私有属性进行封装,所以读取值的时候,也就是直接读取这个字段;而依赖属性则是通过调用继承自DependencyObject的GetValue()和SetValue来进行操作,它实际存储在DependencyProperty的一个IDictionary的键-值配对字典中,所以一条记录中的键(Key)就是该属性的HashCode值,而值(Value)则是我们注册的DependencyProperty。 回顾了一些基础知识,那我们下面就开始今天的依赖属性系统TDD之旅。
五. 引入测试驱动开发
1,引入概念
由于本篇的依赖属性体系是基于测试驱动开发完成的,所以我们就先来看一下什么叫测试驱动开发:测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。由于过程很长,在写的时候也省略了不少步骤,所以有些地方衔接不是那么的流畅,对此表示非常的抱歉! 2,注意事项
根据自身做项目使用TDD的一点微薄经验,总结了以下几个注意事项: ◆ 找准切入点:
不论是开发一个新的系统还是复原系统,都必须先找准一个或多个切入点,从切入点经历”测试代码-功能代码-测试-重构“来逐渐完善整个系统,往往这个切入点就是功能点,就是这个系统具备哪些功能,然后根据这些功能写出测试用例。