2013年9月12日
摘要:
算法一:新建两个List,ListA添加不重复的元素,ListB保存重复的元素,遍历原来的List,ListA不包含元素,添加到ListA中,ListA包含说明重复,添加到ListB中。算法二:使用Linq或者扩展方法+Lambda对集合进行分组,查找组内元素个数大于1 的组。算法三:对集合排序,遍历集合,当前元素与下一个元素相同,即认为是重复元素。
阅读全文
posted @ 2013-09-12 16:30
Andy Niu
阅读(1470)
推荐(0)
2013年9月9日
摘要:
概要设计的要点:划模块,定接口,理流程。划模块,定接口:使用构件图。理流程:使用顺序图。
阅读全文
posted @ 2013-09-09 11:19
Andy Niu
阅读(703)
推荐(0)
摘要:
1、IsEnabled 表示计时器是否已经启动。2、DispatcherTimer处于当前线程的管理,不会新建一个线程专门用于计时操作,也就是说,当前线程可能会阻塞计时器。因此,DispatcherTimer不能保证准时执行,但是能保证不会提前执行。
阅读全文
posted @ 2013-09-09 11:11
Andy Niu
阅读(527)
推荐(0)
摘要:
解决的问题:当前线程定时对集合中的元素,遍历执行一次操作,而在遍历的过程中,其他的线程可能会增删元素,这样的话,就会导致foreach的内部状态发生变化,出现异常。解决办法:定时器每次执行的时候,对集合做一个拷贝,对这个拷贝遍历。其他线程还是对原来的集合做增删操作,不会相互影响。而且即使其他线程,做了增删操作,在定时器也会对所有元素都会执行。
阅读全文
posted @ 2013-09-09 10:57
Andy Niu
阅读(270)
推荐(0)
摘要:
解决的问题:对于站场图中的设备,一类设备的Updater类是相同的,也就是说,对于所有的信号机,都是同一个Updater。解决办法:使用单例模式,所有的信号使用同一个Updater。
阅读全文
posted @ 2013-09-09 10:46
Andy Niu
阅读(198)
推荐(0)
摘要:
无线通信方式有:单工、半双工、全双工。单工:只允许数据在一个方向上传输,比如水流。半双工:可以在两个方向上传输,但不能同时传输,比如单轨铁道。全双工:可以同时在两个方向上传输,比如双轨铁道。无线通信的多址方式有:频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)。频分多址(FDMA):将信道频带分割成若干更窄的互不相交的频带。时分多址(TDMA):把时间分割成互不重叠的时段,再将时段分割成互不重叠的时隙,这些时隙与用户一一对应。码分多址(CDMA):采用不同的编码序列来区分。举例来说,频带就像一个会议室,FDMA的做法是:把会议室分割成小隔间,供不同的人使用;TDMA的做法是:分
阅读全文
posted @ 2013-09-09 10:37
Andy Niu
阅读(1674)
推荐(0)
摘要:
解决的问题:站场图中每个设备都有一个Id属性,使用TextBlock来显示文字,但是TextBlock没有Id属性。解决办法:创建一个类,继承TextBlock,并且增加一个Id属性。这里其实用到的是,类的适配器模式(继承方式)。当然也可以使用对象的适配器模式(委托方式)。
阅读全文
posted @ 2013-09-09 10:05
Andy Niu
阅读(163)
推荐(0)
摘要:
一、变量1、集中使用变量,比如:1 int a = 1;2 ...3 ...4 a = a*2+1; 修改为1 int a =1;2 a = a*2+1;3 ...4 ...2、全局变量的取舍 全局变量的优点:可以随时随地使用,方便。 全局变量的缺点:多地使用,可能会起冲突,其他人可能会破坏变量的内容。 优先使用局部变量,如果某个变量在方法中传来传去,成为流浪数据(tramp data),考虑使用全局变量。3、一个变量只有一个用途,也就是说,变量名在其生命周期中,只代表一个意思。4、千万不要使用文本常量(magic number),尽可能使用具名常量。5、使用CLR属性对字段封装,就暗...
阅读全文
posted @ 2013-09-09 09:48
Andy Niu
阅读(335)
推荐(0)
2013年9月7日
摘要:
C# lock可以锁一个语句块,访问这个语句块的时候,大家排队,一个一个来。C# lock也可以锁多个语句块,多个语句块之间都互斥,访问这些语句块中的任意一个,都要一个一个来。
阅读全文
posted @ 2013-09-07 17:34
Andy Niu
阅读(321)
推荐(0)
摘要:
解决的问题:原先做了上位机界面,根据下位机的数据,更新显示。现在其他项目组,也要用到同样的功能。因此需要做成一个DLL,给他们调用。但是这个DLL中涉及到很多的东西。解决方法:使用门面模式,做成一个门面类,对外暴露接口。在门面类的接口内部,委托相关的类执行操作。
阅读全文
posted @ 2013-09-07 16:41
Andy Niu
阅读(294)
推荐(0)