- 博客(34)
- 资源 (4)
- 收藏
- 关注
转载 单例实现方式
列举一下遇到的单例版本版本1:普通版using System;public sealed class Singleton{ private static Singleton instance; private Singleton() {} public static Singleton Instance { get {
2015-09-16 13:12:53
563
转载 WPF Layout 系统概述——Arrange
Arrange过程概述 普通基类属性对Arrange过程的影响我们知道Measure过程是在确定DesiredSize的大小,以便Arrange过程参考这个DesiredSize,确定给MyPanel分配多少空间,但是DesiredSize只是作为参考,在有些用例下,MyPanelParent在调用MyPanel.Arrange的时候,会根据父的实际策略指定MyPanel.
2015-08-11 11:56:47
2329
转载 WPF Layout 系统概述——Measure
前言在WPF/Silverlight当中,如果已经存在的Element无法满足你特殊的需求,你可能想自定义Element,那么就有可能会面临重写MeasureOverride和ArrangeOverride两个方法,而这两个方法是WPF/SL的Layout系统提供给用户的自定义接口,因此,理解Layout系统的工作机制,对自定义Element是非常有必要的。那么,究竟WPF/SL的Layo
2015-08-11 10:29:41
2651
原创 Sublime Text 2配置可运行NodeJs
直接上内容,呵呵...1.下载安装Sublime Text 22.打开Sublime Text 2,在sublime text下按 Ctrl+Shift+p,打开安装包管理器3.在打开的对话框中输入:install,选择Package Control: Install Package4.在弹出的对话框中输入:nodejs,会显示nodejs相关插件,安装这些插件5.安装完所有插
2015-01-15 15:14:19
4360
原创 Caliburn.Micro的Action介绍
就我个人的理解,Caliburn.Micro的Action其实为我们实现了事件的响应以及事件参数的传递。废话不多说,直接看代码:1.新建一个工程,取名为:CaliburnMicroAction。2.新建一个ViewModel,取名为MainViewModel,其代码如下:class MainViewModel:PropertyChangedBase,IShell { private
2014-12-22 17:17:55
1720
原创 Caliburn.Micro入门
1.简介 Caliburn是Rob Eisenberg在2009年提出的一个开源框架,可以应用于WPF,Silverlight,WP7等,框架基于MVVM模式,像它的名字一样,是企业级应用的一把利器。而Caliburn.Micro是Caliburn项目的精简版,重构了Caliburn的代码,精简掉了一些不常用的功能。2.CM优点1.ActionMessage,结合了Blend中的Tri
2014-12-17 11:48:38
5748
原创 MVVM入门
1.简介MVVM 就是 Model – View – ViewModel 三组功能(类)分割的设计模式。WPF中使用MVVM可以降低UI显示与后端逻辑代码的耦合度,即更换界面时,只需要修改很少的逻辑代码就可以实现,甚至不用修改。在WPF中使用数据绑定机制,当数据变化后,数据会通知界面变更的发生,而不需要通过访问界面元素来修改值,这样在后端逻辑代码中也就不必操作或者很少操作界面的元素了。使用
2014-11-26 12:19:27
822
原创 CollectionView与CollectionViewSource
1.CollectionView是什么?事实上当你将后台数据列表绑定到一个列表控件时,WPF为了默默地在数据列表和列表控件之间增加了层称为CollectionView(列表视图)的东西,其支持很多高级操作,比如排序,分组,过滤等.这样我们就可以将这个过程分成3个部分来看:数据列表(维持着后台数据),列表视图(维持着一些附加状态,比如"当前项","排序"等),列表控件(负责对Collection
2014-10-16 16:14:52
2408
原创 WPF 中style文件的引用
总结一下style一,内联样式:直接设置控件的Height、Width、Foreground、HorizontalAlignment、VerticalAlignment等属性。以设置一个Botton控件的样式为例,如:复制代码Height="72" Width="150" Foreground="White" Background="Blue" Horizo
2014-07-31 11:53:50
1660
转载 log4net配置
log4net的使用,主要在配置文件的设置上,明白了如何配置就基本能够封装自己要用的Log公共类了,以下是Log4net的一个配置示例及常用参数讲解。
2014-07-25 21:11:05
1106
原创 log4net 在windows service中不能记录日志
今天写了一个 Windows 服务程序,其中使用 log4net 却总是失败。不论 log4net 的配置写在 app.config 里,还是独立的 config 文件里,都是一样。今天终于发现原来是在服务里不能正确定位到这个配置文件所致。于是经过尝试之后,发现关键在于如下代码中获取当前 exe 所在目录并用于得到 config 文件的路径。
2014-07-16 17:59:16
4149
原创 如何安装windows service
1.创建 windows服务项目-> 新建项目 -> 已安装的模板 -> Visual C# -> windows ,在右侧窗口选择"windows 服务"2.
2014-07-16 17:47:45
905
原创 闭包
闭包是什么?闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在。闭包就是就是函数的“堆栈”在函数返回后并不释放,我们也可以理解为这些函数堆栈并不在栈上分配而是在堆上分配当在一个函数内定义另外一个函数就会产生闭包上面的第二定义是第一个补充说明,抽取第一个定义的主谓宾——闭包是函数的‘局部变量’集合。只是这个局部变量是可以在函数返回后被访问。
2014-05-19 16:43:17
531
转载 C#线程同步讲解(二):
继续介绍WaitHandler类及其子类 Mutex,ManualResetEvent,AutoResetEvent的用法。.NET中线程同步的方式多的让人看了眼花缭乱,究竟该怎么去理解呢?其实,我们抛开.NET环境看线程同步,无非是执行两种操作:一是互斥/加锁,目的是保证临界区代码操作的“原子性”;另一种是信号灯操作,目的是保证多个线程按照一定顺序执行,如生产者线程要先于消费者线程执行。.NET
2014-04-22 11:23:54
755
原创 C#线程同步讲解(一):
讲到线程,先普及下线程的几个基本概念,如下:临界资源在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必须资源)。但对于某些资源来说,其在同一时间只能被一个进程所占用。这些一次只能被一个进程所占用的资源就是所谓的临界资源。典型的临界资源比如物理上的打印机,或是存在硬盘或内存中被多个进程所共享的一些变量和数据等(如果这类资源不被看
2014-04-22 11:01:37
720
原创 C#迭代器(转)
摘要:迭代器是C#2.0中添加的功能,它能够使我们在类或结构中支持foreach迭代,而不必实现整个IEnumerable/IEnumerable接口。今天我们就一块看一下什么是c#中的迭代器吧。主要内容:1.foreach的运行机制2.传统集合的遍历3.使用迭代器一、foreach的运行机制我们在程序中经常会用到foreach,如果你把它理解成是f
2013-10-18 16:05:36
483
转载 同步和异步
今天看到《WIN32多线程程序设计》的同步控制时,才发现原来自己对同步和异步的概念很模糊,甚至混淆。于是GOOGLE了一下。下面都是高人们的见解,简单明了。------------------------------------------------------------------------------------------------------同步是指:发送方发出数据
2013-10-14 17:00:22
524
原创 C#事件异步调用
当一个事件被触发时,订阅该事件的方法将在触发该事件的线程中执行。也就是说,订阅该事件的方法在触发事件的线程中同步执行。由此,存在一个问题:如果订阅事件的方法执行时间很长,触发事件的线程被阻塞,长时间等待方法执行完毕。这样,不仅影响后续订阅事件方法的执行,也影响主线程及时响应用户的其他请求。如何处理这个问题呢?讲到此,我想您已经想到了,那就是异步事件调用。 怎样实现异步事件调用呢?如果您对
2013-10-14 16:32:38
3318
原创 C#装箱与拆箱
C#语言中的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte, short,bool等等,就是说所有的事物都是对象。如果申明这些类型得时候都在堆(HEAP)中分配内存,会造成极低的效率!(个中原因以及关于堆和栈得区别会在另一篇里单独得说说!).NET如何解决这个问题得了?正是通过将类型分成值型(value)和引用型(regerencetype),
2013-10-12 15:38:14
593
转载 C#流总结
C#流总结1. 什么是流数据流(Stream)是对串行传输数据的一种抽象表示,是对输入/输出的一种抽象。数据有来源和目的地,衔接两者的就是串流对象。用比喻的方式来说或,数据就好比水,串流对象就好比水管,通过水管的衔接,水由一端流向另一端,如下图所示:从应用程序的角度来说,如果将数据从来源取出,可以试用输入(读)串流,把数据储存在内存缓冲区;如果将数据
2013-10-11 23:47:57
4622
1
原创 C# 流概括
内容一 FileStream类 FileStream类主要用于读取磁盘上的文件或者向磁盘文件写入信息。有时,我们需要将程序中的一些数据存储到磁盘上或是读取配置文件中某些内容,在这里我们就会用该类。 从磁盘上的文件中读取内容:1 FileStream file = File.Open(@"F:\file.txt", FileMode.Open);
2013-10-11 23:38:05
696
原创 C# 委托
C# 委托一、委托当我们需要把方法做为参数传递给其他方法的时候,就需要使用委托。因为有时候,我们要操作的对象,不是针对数据进行的,而是针对某个方法进行的操作。 我们还是来以代码入手 using System;namespace gosoa.com.cn{ public class test { publ
2013-10-10 15:22:51
770
1
转载 C#正则表达式:group和capture
/// /// 显示Match内多个Group的例子 /// public void ShowStructure() { //要匹配的字符串 string text = "1A 2B 3C 4D 5E 6F 7G 8H 9I 10J 11Q 12J 13K 14L 15M 16N ffee80 #800080"; //正则表达式
2013-10-09 16:42:57
3421
原创 正则表达式
有一段时间,正则表达式学习很火热很潮流,当时在优快云一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的《C#字符串和正则表达式参考手册》学习了一些基础的知识,同时也为我在优快云大概赚了1000分,今天想起来,去找《C#字符串和正则表达式参考手册》时,已经不知所踪了。现在用到正则的时候也比较少,把以前的笔记等整理一下,以志不忘。(1)“@”符号符下两o
2013-10-09 16:01:25
434
转载 一个简单的PDF文件结构的分析
Adobe的PDF参考告诉我们一个PDF文件可以通过下面4个方面来理解:1. 对象, 一个PDF文档是由一组基本数据类型组成的数据结构。2. 文件(物理结构), 决定对象是如何存放在一个PDF文件中的, 它们是如何被访问的,如何被更新的。这个结构是独立于对象的语义的。3. 文档结构, 说明一些基本的对象类型是如何来表现PDF文档的成分的:
2013-09-29 11:34:37
4428
3
原创 C语言知识点
[预处理器(Preprocessor)]1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24*365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达
2013-09-06 17:30:23
899
贪食蛇 C语言代码
2011-12-26
万年历C语言程序
2011-12-21
I2C协议的C51代码
2011-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人