2012年10月27日
摘要: 点击一下Button,实际上是先执行OnClick方法,但是问什么,同时还出发了Click事件呢?这是因为,OnClick方法内部触发了Click事件。 阅读全文
posted @ 2012-10-27 11:12 Andy Niu 阅读(1615) 评论(0) 推荐(0)
摘要: 解决问题:在调用方法的时候,值类型是整体拷贝,引用类型是复制引用,因此在被调用方法中,修改引用对象的内容,在调用方法中会体现修改的结果。但是如果在被调用方法中,修改引用使其指向另一个对象,在调用方法中不会体现出修改的结果。ref与out就是解决这个问题的。使用场景:ref 调用方法的时候,参数必须初始化;out在被调用方法中,参数被清空,指向Null 阅读全文
posted @ 2012-10-27 11:07 Andy Niu 阅读(199) 评论(0) 推荐(0)
摘要: 解决的问题:一个控件可能有几百个CLR属性,如果每个CLR属性都是包装一个字段,那么这个控件耗费的内存太大了。依赖属性就是解决这个问题的。如何解决这个问题:使控件的CLR属性不是包装字段,而是包装一个DependencyProperty,并且这个DependencyProperty的内存不是分配在控件内,而是采用某种机制分配在外部,以key-value的形式存在。另外,DependencyProperty还解决了一个问题,当DependencyProperty作为绑定源的时候,还能自动更新绑定目标的显示。依赖属性的理解:1、依赖属性就是可以自己没有值,通过binding 从数据源获得值的属性, 阅读全文
posted @ 2012-10-27 10:50 Andy Niu 阅读(1724) 评论(0) 推荐(0)
摘要: 1、从语义上讲,静态成员对类有意义,类和所有实例共享。实例成员对实例有意义,每个实例都有专属于自己的。如何理解?举例来说,Person类的Age应该是实例成员,每个Person实例都有自己的Age,而MaxAge(年龄的最大极限,比如说200岁),应该是静态成员,因为MaxAge对于人类(包括所有人)有意义,也就是说,所有人的年龄最大极限都是200岁。2、从内存分配上看,成员分为字段和方法(C#当中的属性是一种特殊的方法,其本质上也是方法),对于静态字段,在内存中只有一份拷贝,类与所有实例共享。对于实例字段,每个实例都有一个拷贝。而对于方法,不论是静态方法还是实例方法,在内存中都只有一个拷贝, 阅读全文
posted @ 2012-10-27 10:34 Andy Niu 阅读(303) 评论(0) 推荐(0)