08 2013 档案
摘要:ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注:Minimum——最小值,默认为0;Maximum——最大值,默认为100.Value——当前值。关键是它的控件模板,因为系统的默认主题不好看,很多时候我们是需要自定义样式和模板。老方法,先看定义:[csharp]view plaincopyprint?[TemplatePartAttribute(Name="PART_Track",Type=typeof(FrameworkElement))][TemplatePartAttribute(Name="PART_Indicator&quo
阅读全文
摘要:一个win7本本仅通过一个无线路由一个人上网,突然一天不能上网了,甚是奇怪,一看本地连接均是正常的.而且能ping通外网的dns,但无论如何就是打不开网页,表现为输入任何网址很迅速的显示该页无法显示,好像浏览器并没有提交任何url就做出了反应一样.其它客户端诸如QQ,迅雷等都一样不能访问因特网.分析,由于能ping通外网,并且是自动从路由获得的ip,子网,网关,dns信息,所以可以肯定的是路由肯定是没有问题的,把dns手动更换为8.8.8.8也无济于事.由此可断问题,肯定出现在本机上.这个现像就是Winsock LSP“浏览器劫持”哪么是什么是Winsock LSP“浏览器劫持”呢?Winso
阅读全文
摘要:在网上看说在服务里面启动 但也是不能用 电脑上说是WINDOWS无法启动VMware Authorization Service服务(位于本地计算机上)错误:1068 依赖服务或组无法启动 这个很简单。右键 虚拟机快捷方式选择 以管理员身份运行。再打开虚拟机,就没可以了。VMware虚拟机状态已挂起无法恢复解决方案解决方法:1、虚拟机文件所在目录下面, 找到扩展名为vmss的文件; 2、删除该文件。 3、重新启动虚拟机ok;
阅读全文
摘要:1. 确保没有任何警告(warnings)。2.如果先执行Code Analysis(启用所有Microsoft Rules)再消除所有警告就更好了。3.去掉所有没有用到的usings。编码过程中去掉多余代码是个好习惯。(参考:msdn)4. 在合理的地方检查对象是否为’null’,避免运行的时候出现Null Reference Exception。5. 始终遵循命名规范。一般而言变量参数使用驼峰命名法,方法名和类名使用Pascal命名法。(参考:msdn)6. 请确保你了解SOLID原则。根据维基百科定义:在程序设计领域,SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗
阅读全文
摘要:/// /// 备注特性 /// public class RemarkAttribute : Attribute { /// /// 备注 /// public string Remark { get; set; } public RemarkAttribute(string remark) { this.Remark = remark; } } /// /// 枚举扩展类 /// public stat...
阅读全文
摘要:一、ISP简介(ISP--Interface Segregation Principle):使用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最小的接口上的。一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。“不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。二、举例说明:参考下图的设计,在这个设计里,取款
阅读全文
摘要:上一章我们讲了构造注入与设值注入,这一篇我们主要讲接口注入与特性注入。 接口注入 接口注入是将抽象类型的入口以方法定义在一个接口中,如果客户类型需要获得这个方法,就需要以实现这个接口的方式完成注入。实际上接口注入有很强的侵入性,除了要求客户类型增加前面两种方式所需要的代码外,还必须显示地定义一个新的接口并要求客户类型实现它。 //定义需要注入ITimeProvider的类型...
阅读全文
摘要:在项目中增加两张图片Content.jpg和Resource.jpg,分别将其生成操作属性设置为Content和Resource。在界面中增加两个Image控件ImgContent和ImgResource,在XAML中分别设置Source路径为Content.jpg和Resource.jpg。运行后ImgResource能正常显示图片,但是ImgContent控件无显示。将Content.jpg图片拷贝至应用程序的Debug目录中,ImgContent控件可显示图片。生成操作设置为Resource,生成的时候资源将添加到程序集中。可以尝试将原有的图片删除,图片正常显示。将原有图片用新图片替换,
阅读全文
摘要:背景介绍 在设计模式中,尤其是结构型模式很多时候解决的就是对象间的依赖关系,变依赖具体为依赖抽象。平时开发中如果发现客户程序依赖某个或某类对象,我们常常会对他们进行一次抽象,形成抽象的抽象类、接口,这样客户程序就可以摆脱所依赖的具体类型。 这个过程中有个环节被忽略了 谁来选择客户程序需要的满足抽象类
阅读全文
摘要:一、LSP简介(LSP--Liskov Substitution Principle):定义:如果对于类型S的每一个对象o1,都有一个类型T的对象o2,使对于任意用类型T定义的程序P,将o2替换为o1,P的行为保持不变,则称S为T的一个子类型。子类型必须能够替换它的基类型。LSP又称里氏替换原则。对于这个原则,通俗一些的理解就是,父类的方法都要在子类中实现或者重写。二、举例说明:对于依赖倒置原则,说的是父类不能依赖子类,它们都要依赖抽象类。这种依赖是我们实现代码扩展和运行期内绑定(多态)的基础。因为一旦类的使用者依赖某个具体的类,那么对该依赖的扩展就无从谈起;而依赖某个抽象类,则只要实现了该抽
阅读全文
摘要:一、DIP简介(DIP--Dependency InversionPrinciple):1、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。2、抽象不应该依赖于细节,细节应该依赖于抽象。高层模块包含了一个应该程序中的重要的策略选择和业务模型,正是这些高层模块才使得其所有的应用程序区别于其他,如果高层依赖于低层,那么对低层模块的改动就会直接影响到高层模块,从而迫使它们依次做出改动。二、举例说明:反面例子:缺点:耦合太紧密,Light发生变化将影响ToggleSwitch。解决办法一:将Light作成Abstract,然后具体类继承自Light。优点:ToggleSwitch依赖于抽象类Lig
阅读全文
摘要:一、OCP简介(OCP--Open-Closed Principle):Software entities(classes,modules,functions,etc.) should be open for extension, but closed for modification。软件实体应当对扩展开放,对修改关闭,即软件实体应当在不修改(在.Net当中可能通过代理模式来达到这个目的)的前提下扩展。Open for extension:当新需求出现的时候,可以通过扩展现有模型达到目的。 Close for modification:对已有的二进制代码,如dll,jar等,则不允许做任..
阅读全文
摘要:一、SRP简介(SRP--Single-Responsibility Principle):就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变化。“就像一个人身兼数职,而这些事情相互关联不大,,甚至有冲突,那他就无法很好的解决这些职责,应该分到不同的人身上去做才对。”二、举例说明:违反SRP原则代码:modem接口明显具有两个职责:连接管理和
阅读全文
摘要:这几天重新看了一遍《大话设计模式》,发现果然有不同的感悟,而且自己也上网找了《敏捷软件开发—原则、模式与实践》一书来看,那本书的序言中有一段话我觉得很有道理:“美的东西比丑的东西创建起来更廉价,也更快捷。”设计一个软件不关要追求代码的优雅问题,更关乎生产成本等。技术大师们在对软件架构的研究中经历了很长时间的摸索,从面向过程到面向对象,从设计原则到设计模式,总结了许多设计上的经典法则,而我们就只是站在巨人的肩膀上眺望远方而已。 从《大话设计模式》中,大家一定会发现其中的经典的23个模式背后,其实都遵循着一些基本的原则的。而设计原则又由设计模式来实现,这就是二者相辅相成的关系,所以了解原则对于了.
阅读全文
摘要:对象的创建方式,始终代表了软件工业的生产力方向,代表了先进软件技术发展的方向,也代表了广大程序开发者的集体智慧。以new的方式创建,通过工厂方法,利用IoC容器,都以不同的方式实现了活生生实例成员的创生。而本文所关注的Lazy也是干这事儿的。不过,简单说来,Lazy要实现的就是按“需”创建,而不是按时创建。我们往往有这样的情景,一个关联对象的创建需要较大的开销,为了避免在每次运行时创建这种家伙,有一种聪明的办法叫做实现“懒对象”,或者延迟加载。.NET 4.0之前,实现懒对象的机制,需要开发者自己来实现与管理它的定义如下:[Serializable]public class Lazy{ ...
阅读全文
摘要:在WPF 中可以通过PrintDialog类方便的实现应用程序打印功能,本文将使用一个简单实例进行演示。首先在VS中编辑一个图形(如下图所示)。 将需要打印的内容放入同一个中,并起名为“printArea”,打印按键一般不是我们希望打印出来的内容,则将其放在外面。 ...
阅读全文
摘要:LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及order by(C#中)。使用这些操作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。看图,不解释
阅读全文
摘要:一、投影操作符1. SelectSelect操作符对单个序列或集合中的值进行投影。下面的示例中使用select从序列中返回Employee表的所有列:using(NorthwindDataContextdb=newNorthwindDataContext()){//查询语法varquery =fromeindb.Employeeswheree.FirstName.StartsWith("M")selecte;//方法语法varq =db.Employees.Where(e => e.FirstName.StartsWith("M")).Select
阅读全文
摘要:今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟!下面是他发给我的测试代码。我晕~~~~~~using System.Data;using System.Data.Common;using System.Data.SQLite;// 创建数据库文件File.Delete("test1.db3");SQLiteConnection.CreateFile("test1.db3");DbProviderFactory factory = SQLiteFactory.Instance;using
阅读全文
摘要:1、LINQ to XML类以下的代码演示了如何使用LINQ to XML来快速创建一个xml:public static void CreateDocument(){ string path = @"d:\website"; XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XElement("Root", "root")); xdoc.Save(path);}运行该示例将
阅读全文
摘要:1.extjs 给怎么给panel设背景色设置bodyStyle:'background:#ffc;padding:10px;',var resultsPanel = Ext.create('Ext.panel.Panel', { title: 'Results', width: 600, height: 400, renderTo: Ext.getBody(), bodyStyle: 'background:#ffc; padding:10px;', layout: { type: 'vbox', // Arra
阅读全文
摘要:首先,想问大家一个问题,你们如果要给一个Button添加背景图片会怎么做?(呵呵,这个问题又点小白哈)是这样吗? 如果也是这样的话,那你们有没有碰到这个问题呢,当鼠标放到按钮上,背景会被改变呢?如图:正常显示鼠标放到按钮上按钮就变成这样了,你们有没有碰到这样的事情?那你们又是怎么解决的呢,希望高手指点下。不胜感激……我们的解决方案是做一个模板,把背景图片当作内容赋给Button代码如下: ...
阅读全文
摘要:使用委托可以执行的一项有用操作是实现回调。回调是传入函数的方法,在函数结束执行时调用该方法。 例如,有一个执行一系列数学操作的函数。在调用该函数时,也向其传递一个回调方法,从而在函数完成其计算工作时,调用回调方法,向用户通知计算结果。 同步回调 首先声明两个方法: AddTwoNumbers():接受两个整型实参以及一个类型委托 ResultCallback():接受...
阅读全文
摘要:1.ExtJs设置cookie两种方式其一:设置cookie如下saveacct=isForm.getForm().findField('itemselector').getValue(); Ext.util.Cookies.set('saveacct',saveacct);取cookie中数据如下var validStatus = Ext.util.Cookies.get("saveacct");alert(validStatus);其二:设置cookievar cookie = new Ext.state.CookieProvider()
阅读全文
摘要:串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。只需给类添加Serializable属性,就可以实现串行化实的成员。反串行化是串行化的逆过程,数据从存储介质中读取出来,并赋给类的实例变量。串行化能保存现有对象的所有状态,我想我们以前见过的一些游戏的角色账户中的dat文件应该就是被串行化的结果。我尝试了打开一个dat文件,果真得到了我需要的信息,一些角色的等级之类的信息果然在里面。 串行化对象,需要先将对象加上[Serializable],如: [Serializable]...
阅读全文
摘要:在推动技术变革上,开源运动发挥了非常显著的作用。而Linux成功地将开源转换成商务模式,给广大开源工作者带来了更大的信心和勇气。目前,开源已成为主流,在未来的几年内,它的足迹将会遍布前沿教育、航空航天(如无人驾驶飞机)等许多领域。 借鉴现有的开源项目或开源代码,对于初级开发者来说,不失为一种很好的编程手段,但千万不要单纯地“用”,更多地是理解与提升,这样才会进步。 下面为大家介绍6款源码搜索引擎,让你找到更适合你的源码。 1.Ohloh Ohloh Code是最大且非常全面的源码搜索引擎,根据FOSS目录来看,其拥有超过10亿行代码且在不断更新,它不仅是免费的,而且还可以通过社区进行免...
阅读全文
摘要:好了,看这个红叉叉打的,下面先来一条异常:1.在“System.Windows.Baml2006.DeferredBinaryDeserializerExtension”上提供值时引发了异常上图:这个问题我纠结了半天查了好多资料而不可得,总以为是数据绑定之类的错误,最后才发现是一个TextBlock的背景颜色值设错了。血淋淋的教训啊浪费了半天时间就因为自己的大意。遇到这种问题如果实在找不错问题,就一个一个剔除控件,找到出问题的控件。2.一个自定义ListView模板,看你是否用的上 ...
阅读全文
摘要:摘要:升值为企业IT部门的领导者,是大部分IT技术人员职业生涯的最终追求。但从一般大众中脱颖而出,并非易事。仅仅把本职工作干好远远不够,还需要IT技术人员展示出投身于技术发展的奉献精神及伴随技术发展而发展的能力。升值为企业IT部门的领导者,并非一件易事。从一般大众中脱颖而出,则更不容易。2013是一个好年头,据专家报告显示,6月所有新工作中,10%来自技术领域。这对于那些希望高升、换岗、跳槽的IT技术人员来说是个好消息。但要想这些职业“变动”成为可能,你需要让雇佣者感受到你可以带来更多价值。根据CIO、职业顾问及专家的观点,仅把工作干好还不够。你需要展示出投身于技术发展的奉献精神及伴随技术发展
阅读全文
摘要:我们知道,文字的修饰包括:空心字、立体字、划线字、阴影字、加粗、倾斜等。这里只说划线字的修饰方式,按划线的位置,我们可将之分为:上划线、中划线、基线与下划线。如图:从上至下,分别为上划线(Overline),中划线(StrikeThrough),基线(Baseline)和下划线(Underline)。如何实现?(1)XAML代码:A这里 TextDecorations 属性可以设置为:OverLine, Strikethrough, Baseline, Underline或None,如果没有设置 TextDecorations 属性,则默认为 None,即不带划线修饰。(2)使用C#代码...
阅读全文
浙公网安备 33010602011771号