上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 30 下一页
摘要: 现在刚开始学习SilverLight的MVVM模式,有很多东西还不是很清楚,前面有很多大牛总结了一些经验,在这里记录一下,方便自己现在学习和以后回过头来总结摘至(孙长宇个人技术博客http://www.cnblogs.com/tiscs/archive/2011/12/16/mvvm-and-me.html)1 不要在View的Code-Behind中添加任何代码,除非这段代码没有任何复用性且只与当前页面交互逻辑有关;2 ViewModel的设计要面向业务,面向数据会增加系统实现的复杂性,面向视图会降低ViewModel的可复用性;3 ViewModel中不能掺杂任何与界面交互逻辑相关的东西( 阅读全文
posted @ 2012-02-28 15:10 cpcpc 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 一、引言1. 问题的引入假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件构架更能显示出它的优越性。2. 几个解决方案的对比我总结了一下我所接触到的插件构架,大致上可分为以下几类:i> 脚本式使用某种语言把插件的程序逻辑写成脚本代码。而这种语言可以是 Python ,或是其他现存的已 阅读全文
posted @ 2012-02-08 16:33 cpcpc 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。paramsparams关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。示例:字面意思比较难懂,所以看示例很有用。 1 // keywords_params.cs 2 3 using System; 4 5 class App 6 { 7 public static void UseParams(p... 阅读全文
posted @ 2011-09-05 20:32 cpcpc 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 在C#中,ref的意思是按引用传递。可以参考C++:1 int a = 10, b = 20; 2 void swap(int x, int y) 3 { 4 int temp = x; 5 x = y; 6 y = temp; 7 } 如果简单的调用这个swap,比如:swap(a, b),那么你根本没办法交换这两个变量的值,因为x和y都是形参,在swap返回的时候,x和y都被释放了。但如果是这样定义swap:1 void swap (int& x, int& y) 2 { 3 int temp = x; ... 阅读全文
posted @ 2011-09-05 20:29 cpcpc 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也就是写死了的!而虚函数在编译期间是不被静态编译的,它的相对地址是不确定的,它会根据运行时期对象实例来动态判断要调用的函数,其中那个申明时定义的类叫申明类,那个执行时实例化的类叫实例类。如:飞禽 bird = new 麻雀();那么飞禽就是申明类,麻雀是实例类。具体的检查的流程如下1、当调用一个对象的函数时,系统会直接去检查这个对象申明定义的类,即申明类,看所调用的函数是否为虚函数;2、如果不是虚函数,那么它就直接执行该函数。而如果有virtual关键 阅读全文
posted @ 2011-09-05 20:27 cpcpc 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 类(Class)面向对象思想来源于对现实世界的认知。现实世界缤纷复杂、种类繁多,难于认识和理解。但是聪明的人们学会了把这些错综复杂的事物进行分类,从而使世界变得井井有条。比如我们由各式各样的汽车抽象出汽车的概念,由形形色色的猫抽象出猫的概念,由五彩斑斓的鲜花抽象出花的概念等。汽车、猫、鲜花都代表着一类事物。每一类事物都有特定的状态,比如汽车的品牌、时速、马力、耗油量、座椅数,小猫的年龄、体重、毛色,鲜花的颜色、花瓣形状、花瓣数目,都是在描述事物的状态。每类事物也都有一定的行为,比如汽车启动、行驶、加速、减速、刹车、停车,猫捉老鼠,鲜花盛开。这些不同的状态和行为将各类事物区分开来。面向对象编程也 阅读全文
posted @ 2011-09-05 20:26 cpcpc 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 1 #region 冒泡排序算法 2 //首先将所有待排序的数字放入工作列表中 3 //从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换 4 //重复2号步骤,直至再也不能交换 5 public class BubbleSort 6 { 7 public void Sort(int[] list) 8 { 9 int i, j, temp;10 j = 1;11 while (j < list.L... 阅读全文
posted @ 2011-09-05 20:25 cpcpc 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 播放MP3url为MP3文件的路径,width,height为播放器大小 1 private string mp3(string url, int width, int height) 2 { 3 return @"<object id='mplayer' width='460' height='68' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' codebase='http://activex.microsoft.com/activex/con 阅读全文
posted @ 2011-09-05 20:21 cpcpc 阅读(508) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/phoebus0501/archive/2010/12/05/1897245.html上图就是这个项目的总体结构图,从图中可以看出该程序分为这几大块:连接侦听线程、连接对象队列、发送线程池、接收线程池、分发线程、事件处理对象、监控处理对象。下面我将描述下整个连接处理过程:1、 连接侦听线程循环接收一个连接请求,如果有连接请求过来,则返回一个连接Socket对象,否则该线程就阻塞等待,直到有一个连接请求过来。2、 封装该返回的Socket对象(主要是封装获取完整包数据,发送方法,关闭方法等)成Connection对象,并把封装好的Connection 阅读全文
posted @ 2011-09-05 20:19 cpcpc 阅读(2615) 评论(0) 推荐(1) 编辑
摘要: volatile和synchronized的区别:1.volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。2.volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的。3.volatile仅能实现变量的修改可见性,并能保证原子性;而synchronized则可以保证变量的修改可见性和原子性。4.volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。 5.volatile标记的变量不会被编译器优化; 阅读全文
posted @ 2011-09-05 20:17 cpcpc 阅读(2195) 评论(1) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 30 下一页