06 2017 档案

摘要:概念:本文中的“提取工厂类”是指如果要创建的对象很多,则代码会变的很复杂。一种很好的方法就是提取工厂类。 正文:一般来说我们需要在代码中设置一些对象,以便获得它们的状态,从而使用对象,所谓的设置通常来说就是创建对象的实例并调用对象的方法。有时如果要创建的对象很多,则代码会变的很复杂。这便是工厂模式发 阅读全文
posted @ 2017-06-29 16:38 marblemm 阅读(190) 评论(0) 推荐(0)
摘要:概念:本文中的“使用策略类” 是指用设计模式中的策略模式来替换原来的switch case和if else语句,这样可以解开耦合,同时也使维护性和系统的可扩展性大大增强。 正文:如下面代码所示,ClientCode 类会更加枚举State的值来调用ShippingInfo 的不同方法,但是这样就会产 阅读全文
posted @ 2017-06-29 16:00 marblemm 阅读(156) 评论(0) 推荐(0)
摘要:概念:本文所讲的封装集合就是把集合进行封装,只提供调用端需要的接口。 正文:在很多时候,我们都不希望把一些不必要的操作暴露给调用端,只需要给它所需要的操作或数据就行,那么做法就是封装。这个重构在微软的代码库也经常遇到。比如最经典的属性对字段的封装就是一个很好的例子,那么下面我们将看到对集合的封装,如 阅读全文
posted @ 2017-06-29 15:56 marblemm 阅读(341) 评论(0) 推荐(0)
摘要:概念:本文中的“使用委派代替继承”是指在根本没有父子关系的类中使用继承是不合理的,可以用委派的方式来代替。 如下代码所示,Child 和Sanitation (公共设施)是没有逻辑上的父子关系,因为小孩不可能是一个公共设施吧!所以我们为了完成这个功能可以考虑使用委派的方式。 重构后的代码如下,把Sa 阅读全文
posted @ 2017-06-29 15:55 marblemm 阅读(185) 评论(0) 推荐(0)
摘要:重构不只可以改善既有的设计,还可以帮助我们理解原来很难理解的流程。比如一个复杂的条件表达式,我们可能需要很久才能看明白这个表达式的作用,还可能看了好久终于看明白了,过了没多长时间又忘了,现在还要从头看,如果我们把这个表达式运用Extract Method抽象出来,并起一个易于理解的名字,如果函数名字 阅读全文
posted @ 2017-06-29 15:49 marblemm 阅读(153) 评论(0) 推荐(0)
摘要:一个内存地址存着一个对应的值,这是比较容易理解的。 如果程序员必须清楚地知道某块内存存着什么内容和某个内容存在哪个内存地址里了,那他们的负担可想而知。 汇编语法对“一个内存地址存着一个对应的数”,作了简单的“抽象”:把内存地址用变量名代替了,对内存地址的取值和赋值方式不变。 c语言对此进行了进一步的 阅读全文
posted @ 2017-06-29 14:27 marblemm 阅读(418) 评论(0) 推荐(0)
摘要:先添加notifyicon控件notifyIcon1 阅读全文
posted @ 2017-06-29 10:40 marblemm 阅读(4575) 评论(0) 推荐(0)
摘要:首先我必须承认访问一个类的私有成员不是什么好做法。大家也都知道私有成员在外部是不能被访问的。而一个类中会存在很多私有成员:如私有字段、私有属性、私有方法。对于私有成员访问,可以套用下面这种非常好的方式去解决。 private string name;public string Name{ get { 阅读全文
posted @ 2017-06-29 10:20 marblemm 阅读(421) 评论(0) 推荐(0)
摘要:原因 非密封类型的构造函数调用其类中定义的虚方法。 原因 非密封类型的构造函数调用其类中定义的虚方法。 非密封类型的构造函数调用其类中定义的虚方法。 规则说明 调用虚方法时,直到运行时之前都不会选择执行该方法的实际类型。构造函数调用虚方法时,可能尚未执行调用该方法的实例的构造函数。 规则说明 调用虚 阅读全文
posted @ 2017-06-29 10:14 marblemm 阅读(2302) 评论(0) 推荐(0)
摘要:这篇文章主要介绍了WinForm中DefWndProc、WndProc与IMessageFilter的区别,较为详细的分析了WinForm的消息处理机制,需要的朋友可以参考下 一般来说,Winform的消息处理机制多数时候是通过事件处理程序进行的,但当没有对应的事件时通常的做法是声明DefWndPr 阅读全文
posted @ 2017-06-29 10:07 marblemm 阅读(508) 评论(0) 推荐(0)
摘要:c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失 必须将鼠标移到图标上面时才能消失? 请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束), windows系统好多程序都会这样。 网上搜索后大家说法不一,如下: 1、这个就这样,很多程序 阅读全文
posted @ 2017-06-29 09:22 marblemm 阅读(5703) 评论(3) 推荐(2)
摘要:我估计有些朋友不清楚ActiveX控件,但这篇博客不是来解释这些概念的。如果你对ActiveX的概念不清楚,请参考这里: http://baike.baidu.com/view/28141.htm 这篇博客也不是讨论ActiveX是否有必要用的,因为这历来也是有些争议的。anyway, 我们这里只是 阅读全文
posted @ 2017-06-29 09:06 marblemm 阅读(307) 评论(0) 推荐(0)
摘要:最近做的一个winform类型的项目中需要屏蔽系统热键,在网上搜索了一下,基本上都是调用api来进行hook操作,下面的代码就可以完成功能 PS:也可以通过将[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\S 阅读全文
posted @ 2017-06-28 14:59 marblemm 阅读(3087) 评论(1) 推荐(0)
摘要:最近在做一个恶搞程序,就是打开后,程序获得桌面的截图然后,然后全屏显示在屏幕上,用户此时则不能进行任何操作。 此时希望用户不能通过键盘alt+F4来结束程序及通过Win的组合键对窗口进行操作。我在网上搜索了一下,采用全局键盘钩子的方法可以做到屏蔽用户对键盘的操作。。以下为相关代码,用到了Form1_ 阅读全文
posted @ 2017-06-28 14:51 marblemm 阅读(933) 评论(0) 推荐(0)
摘要:每个窗体都有这样3个事件:KeyDown、KeyPress、KeyUp,KeyDown和KeyPress都是按键按下事件,但KeyDown用的是KeyCode跟键盘各个按键相对应,它对应Keys枚举,用起来比较方便;而KeyPress用的是KeyChar,这个就要找ASC II编码了,不方便。因此我 阅读全文
posted @ 2017-06-28 14:17 marblemm 阅读(4900) 评论(1) 推荐(1)
摘要:方法一:使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例.把program.cs文件里的Main()函数改为如下代码: 说明:程序中通过语句 System.Threading.Mutex run = new System.Threading.Mutex(true, "single_test" 阅读全文
posted @ 2017-06-28 14:05 marblemm 阅读(390) 评论(0) 推荐(0)
摘要:Const 定义的是静态常在对象初始化的时候赋值.以后不能改变它的值.属于编译时常量。 Static 定义的是静态变量.可以再外部改变它的值.. Readonly 是只读变量.属于运行时变量.可以在类初始化的时候改变它的值.. const 和 static 不能在一起用 我们都知道,const和st 阅读全文
posted @ 2017-06-28 10:45 marblemm 阅读(264) 评论(0) 推荐(0)
摘要:字符 说明 示例 输出 C 货币 string.Format("{0:C3}", 2) $2.000 D 十进制 string.Format("{0:D3}", 2) 002 E 科学计数法 1.20E+001 1.20E+001 G 常规 string.Format("{0:G}", 2) 2 N 阅读全文
posted @ 2017-06-28 10:36 marblemm 阅读(1781) 评论(0) 推荐(0)
摘要:参考: http://blog.csdn.net/caowei880123/article/details/6327412 http://www.cnblogs.com/dyfzwj/archive/2011/04/16/2017916.html 更详细介绍:http://www.cnblogs.c 阅读全文
posted @ 2017-06-27 13:55 marblemm 阅读(3092) 评论(0) 推荐(0)
摘要:C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一、 值类型的比较 对于值类型来说 两者比较的都是”内容”是否相同,即 值 是否一样,很显然此时两者是划等号的。 例: int i = 9; int j = 阅读全文
posted @ 2017-06-27 13:44 marblemm 阅读(2712) 评论(0) 推荐(1)
摘要:最佳解决方案的代码: 效果如图: 阅读全文
posted @ 2017-06-27 13:42 marblemm 阅读(466) 评论(0) 推荐(0)
摘要:C#获取项目程序及运行路径的方 1.asp.net webform用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”; 2.c# winform用 A:“Application.StartupPath”:获取当前应用程序所在目录的路径,最 阅读全文
posted @ 2017-06-27 11:58 marblemm 阅读(48589) 评论(0) 推荐(1)
摘要:第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述。 第三步:配置Java环境变量. 右键”计算机” => ”属性” => ”高级系统设置” => ”高级” => “环境变量” => “系统变量”。 变量名:JAVA_HOME 阅读全文
posted @ 2017-06-27 11:50 marblemm 阅读(275) 评论(0) 推荐(0)
摘要:有时为了满足现实的需要,我们想生成随机的较深的颜色,比如:彩色二维码,为了让手机、二维码识别设备可以正确识别,必须使用较深的颜色。如下图所示: 那么,如何实现呢?以下为源码: 第二种方式: 阅读全文
posted @ 2017-06-27 09:15 marblemm 阅读(1637) 评论(0) 推荐(0)
摘要:1、git for Windows https://git-for-windows.github.io/ 2、gitExtensions http://gitextensions.github.io/ 3、gitExtensions安装 http://mcbbs.kuaikuai.cn/forum. 阅读全文
posted @ 2017-06-27 09:05 marblemm 阅读(149) 评论(0) 推荐(0)
摘要:以下方法是在当前的分支下新建一个分支,然后把之前分支删除,接着把新建的分支重命名为原分支名称,最后把分支强制推送到远程 阅读全文
posted @ 2017-06-26 15:38 marblemm 阅读(3936) 评论(0) 推荐(0)
摘要:在git中如果想忽略掉某个文件, 不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。这个文件每一行保存了一个匹配的规则 例如 这样设置了以后 所有的 .pyc 文件都不会添加到版本库中去。 另外 git 提供了一个全局的 .gitignore你可以在你的用户目录下创建 ~/ 阅读全文
posted @ 2017-06-26 13:59 marblemm 阅读(744) 评论(0) 推荐(0)
摘要:有时候在一个临时局域网内没有搭建git服务器,但是又想多人开发一个项目,此时只要每个人电脑安装有git客户端,参考一下方法即可尝试建一个本地化的远程仓库进行多人开发工作。 远程仓库通常只是一个裸仓库(bare repository)—— 即一个没有当前工作目录的仓库。因为该仓库只是一个合作媒介,所以 阅读全文
posted @ 2017-06-26 10:59 marblemm 阅读(968) 评论(0) 推荐(0)
摘要:基于配置简单的原则,先试用一下SCM-Manager http://www.scm-manager.org/ 看主页介绍:Very easy installation 安装简单,配置方便,不需要额外的web服务器一、服务器配置到这里来依照文档开始使用https://bitbucket.org/sdo 阅读全文
posted @ 2017-06-26 09:38 marblemm 阅读(3389) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/lphbtm/article/details/8647565 vs2010 中添加 ActiveX Control Test Container工具(转载) vs2010中的TSTCON( ActiveX Control Test Container )工具 阅读全文
posted @ 2017-06-17 17:18 marblemm 阅读(3793) 评论(0) 推荐(0)
摘要:其实在github下载的MapWinGIS代码,在support文件夹下的build文件夹下的HowToBuild说明已经写的很清楚了, * How to build MapWinGIS.ocx** Paul Meems* October 19, 2014Since MapWinGIS v4.9.1 阅读全文
posted @ 2017-06-17 16:41 marblemm 阅读(1699) 评论(0) 推荐(0)