Fork me on GitHub

04 2012 档案

摘要:很多时候我们不知不觉中使用着设计模式,自己很多却不知道自己使用了,例如我们在涉及抽象类,接口的时候经常用到装饰者模式,在Winfrom的窗体(当然还是类)复用中经常用到模板方法模式......反正什么是设计模式,学好多态是很重要的,言归正传。 通常一个类通常可以创建无限个对象,但是有时候需要只有一个对象的类,比如全局资源管理器、缓存管理器等,这种情况下如果有多个对象就会乱掉了。缓存管理器只能有一个,否则把数据扔给一个管理器,却管另外一个要。 就好比有一个老婆类,他的一个对象对我很好,但是不是随便那个老婆等可以对我好,应该只有我老婆对我好,因此我们要确定这个唯一的老婆。 ... 阅读全文
posted @ 2012-04-29 12:35 Halower 阅读(2655) 评论(9) 推荐(4) 编辑
摘要:开篇先熟悉两个小概念:早绑定:是指在编译时绑定对象的类型晚绑定:是指在运行时才绑定对象的类型。当然我们提到上面两个概念,肯定是为了引入今天的主题——利用反射实现晚绑定(也就是动态的加载类型,并调用它们)。我暂时只是为了测试的方便先定义一个不能执行的程序集(Person.dll)无需写的完善,仅仅作为测试使用,之后我们在这个程序中调用它。person.dll内部如下:person.dll 1 using System; 2 public class Chinese 3 { 4 private string language; 5 private ... 阅读全文
posted @ 2012-04-27 15:35 Halower 阅读(1828) 评论(4) 推荐(8) 编辑
摘要:使用 Assembly 类可以加载程序集、浏览程序集的元数据和构成部分、发现程序集中包含的类型以及创建这些类型的实例。若要获取 Assembly 对象(表示当前加载到应用程序域(例如,简单项目的默认应用程序域)中的程序集)的数组,可以使用 AppDomain ..::.GetAssemblies 方法。若要动态加载程序集, Assembly 类可提供下列静态方法(在 Visual Basic 中为 Shared 方法)。 程序集被加载到发生加载操作的应用程序域中。加载程序集的推荐方式是使用 Load 方法,该方法标识要由其显示名称加载的程序集(例如"System.Windows.Fo 阅读全文
posted @ 2012-04-27 13:23 Halower 阅读(633) 评论(0) 推荐(3) 编辑
摘要:前言:由于身边也没什么学习资料,也就一边利用网络一边自己理解整理,慢慢地步入神秘的反射机制。 反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。 简而言之, 反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。 使用 Assembly 定义和加载程序集,加载在程序集清单中列出的模块,以及从此程序集中查找类型并创建该类型的实例。 使用 Module 发现以下信息:包含模块的程序集以及... 阅读全文
posted @ 2012-04-26 03:21 Halower 阅读(2516) 评论(1) 推荐(7) 编辑
摘要:当我们在连接MSSQLSEVER的时候,一般都是SqlConnectioncon=newSqlConnection(ConStr);这样的格式格式来创建连接字符串的,这是时候我们我们似乎感觉他很方便。但是突然那一天你的老板给你给一个Oracle的备份数据库,你是不是还要OracleConnectioncon=newOracleConnection(conStr);又突然老板突发奇想,觉得数据量也不大,而且ACCESS2010还蛮潮流的,你给我换成ACCESS要我哪里都可以直接打开,你是否又要OleDbConnectionconn=newOleDbConnection(conStr);刚做好.. 阅读全文
posted @ 2012-04-24 16:13 Halower 阅读(1331) 评论(5) 推荐(6) 编辑
摘要:在博问里看到有人在问关于GC的问题,便自己也发了个回复赚点园豆。今天阳光明媚啊,又是个艳阳天呢。转入正题:什么是"GC"?垃圾收集器GC(garbagecollector)。对于这个概念应该是所有.net学习这都知道的,它使得程序对于内存的分配、回收都不需要程序员操作,程序员只要需要的时候new就可以,用完了不用管,有人帮你清除不用的内存。这个人就是“垃圾收集器”。.Net程序员一般不用像C++程序员那样处理内存的申请和回收,是因为有GC。知道概念我们就该细致的总结一下它的详细特性。对象的生存周期1.当我们创建一个对象的时候,运行构造函数,为其分配一块内存,我们称之为一个活 阅读全文
posted @ 2012-04-20 13:08 Halower 阅读(4246) 评论(6) 推荐(6) 编辑
摘要:特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。这篇文章绝大部分是按照MSDN来学习的,只是加了一点点自己的东东,官方介绍的很详细,我们就一起来了解一下它的用法。特性具有以下属性:特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员。可以添加自定义特性,以指定所需的任何附加信息。可以将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)。特性可以与方法和属性相同的... 阅读全文
posted @ 2012-04-19 00:31 Halower 阅读(66012) 评论(17) 推荐(24) 编辑
摘要:今天下午依旧逃课(大学生就业指导)很操蛋的课程,要是上这课真能给我们指条路也就好了,看着男同学们一个个阳痿早泄,女同学们一个个搔首弄姿,哈哈还是不去了,所以两年来此类的课程一节都没上过,于是就写点东西,此外的可以暂时忽略。1.首先我们应该知道什么是扩展方法:扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。2.知道了扩展方法怎么创建呢?定义一个静态类以包含扩展方法。将该扩展方法实现为静态方法,并使其至少具有与包含类相同的可见性。该方法的第一个参数指定方法所操作的类型;该... 阅读全文
posted @ 2012-04-18 16:12 Halower 阅读(3288) 评论(8) 推荐(9) 编辑
摘要:为什么要出现委托,为什么又要出现事件,事件和委托又是什么关系,既然有网友问到了,我也回顾一下。 1.委托的出现是基于多态,增加相同类型函数操作代码的复用性以减少冗余代码。 2.委托和事件没有可比性,因为委托是类型,事件是对象。 对于第一点大家都应该特别熟悉,这个帖子主要就看第二个问题。 首先我用委托方式实现的一个事件(之后会用标准的event方式实现),但是应该有个观念事件的内部是用委托实 现的. 1.我首先使用委托方式实现的一个事件.我首先定义了一个旅行社TravelagencyDelegate用来代理购票业务。 之后定义了一个售票点里面包含了:买票行为,以及权限证明。好了上代码: 1 us 阅读全文
posted @ 2012-04-15 22:39 Halower 阅读(2927) 评论(12) 推荐(10) 编辑
摘要:var re = /[a-z]$/; var str = "ab\ncdef"; alert(str.replace(re,"#"));//ab\ncde# re =/[a-z]$/m; alert(str.replace(re,"#"));//a#\ncde# 使用元字符注意事项:元字符是正则表达式的一部分,当我们要匹配正则表达式本身时,必须对这些元字符转义.下面是正则表达式用到的所有元字符( [ { \ ^ $ | ) ? * + .var str = "?"; //var re = /?/; //alert( 阅读全文
posted @ 2012-04-13 01:07 Halower 阅读(570) 评论(0) 推荐(0) 编辑
摘要:正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。下表是元字符及其在正则表达式上下文中的行为的一个完整参考列表:字符描述\转义字符,在之前,我们在字符串也用过这字符,即一些字符具有特殊含义,对其进行转义使它成为普通字符,而用在普通字符上又表示其有特殊含义^匹配输入字符串的开始位置,如果设置了匹配多行(m),那么也匹配行的开头$匹配输入字符串的结束位置。如果设置了匹配多行(m),那么也匹配行的结束*匹配前面的子表达式零次或多 阅读全文
posted @ 2012-04-13 00:51 Halower 阅读(1528) 评论(0) 推荐(2) 编辑
摘要:DOM相关方法总结:Document Object Model (DOM)是HTML和XML文档的编程接口。它提供了上述文档的一种结构化表示,同时也定义了一种通过程序来改变文档结构,风格,以及内容的方式。DOM用一组结构化的节点以及对象来表示文档。本质上就是将网页和脚本语言以及编程语言连接起来。DOM被设计为独立于任何特定的编程语言,通过协调一致的API以确保这种文档的结构化表现形式是有效的。DOM标准主要要为:微软DOM与W3C DOM,一般IE实现的是微软DOM,而其它浏览器则不同程度的实现了W3C DOM。DOM很大程度上受到浏览器中动态HTML发展的影响,但W3C还是将它最先应用于XM 阅读全文
posted @ 2012-04-10 22:37 Halower 阅读(1231) 评论(0) 推荐(0) 编辑
摘要:InnerXML返回XmlNode它内部的所有节点构成的Xml片段。对于含有命名空间的元素作以下方式处理。InnerText返回内部文本部分。<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template >...</xsl:template></xsl:stylesheet><xsl:stylesheet version="1.0" xmlns:xsl=&qu 阅读全文
posted @ 2012-04-09 16:27 Halower 阅读(820) 评论(0) 推荐(2) 编辑
摘要:javascript 学习笔记特殊数据类型是: * Undefined var a;//声明一个变量,但没有对其赋值 alert(a);//但它仍然有值的,它的值为undefined alert(b);//但注意,输出一个未定义的变量将出现错误,而不是输出undefinedNaN是一个特殊的值,含义是"Not A Number"-不是一个数字,当将其它值转换成数字失败时会得到这个值 var str ="some string here!"; var num = 123; alert(str*num);//将输出NaN,因为乘法运算符只能针对数字,所以进行 阅读全文
posted @ 2012-04-07 19:52 Halower 阅读(584) 评论(0) 推荐(1) 编辑
摘要:System.Xml.XmlReader和System.Xml.XmlWriters是两个抽象类,XmlReader提供了对于XML数据的快速,非缓存,只进模式的读取器,XmlWriter表示一个编写器,该编写器提供快速,非缓存,只进的方式来生成包含XML数据的流文件。XmlReader与SAX读取器类似,不过前者是提取模式(只进只读的游标),后者是推送模式(将事件推送到应用程序)。XmlReader的优点是:1.简化状态管理2.可以有多个输入流3.提取模式可以作为推送模式的基础,反之不行。4.提供一个可以将字符串直接写入缓冲区,避免多余字节的的复制。5.有选择的处理XML流,可以预先设置处理 阅读全文
posted @ 2012-04-07 00:33 Halower 阅读(759) 评论(0) 推荐(2) 编辑
摘要:马马虎虎看了看BinaryWriter/BinaryReader,试了一下,知道有这么回事,有个印象,以后遇到在研究啦,玩了这么几天三层架构,顺便做个总结:三层体系结构的概念用户界面表示层(USL/UI)业务逻辑层(BLL) 数据访问层(DAL)各层的作用 1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的 形式)的操作层,,具体为业务逻辑层或表示层提供数据服务 2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作, 对数据业务逻辑处理, 一句话总结就是制定游戏规则! 3.层:接受参数,面向用户。为什么要分三层 我们用三层结构主要是使项目结构更清楚,分工更明 阅读全文
posted @ 2012-04-04 21:55 Halower 阅读(1119) 评论(0) 推荐(4) 编辑
摘要:DAL层代码: 1 using System.Collections.Generic; 2 using System.Data; 3 using DataTreeModel; 4 using System.Data.SqlClient; 5 using System.Windows.Forms; 6 7 namespace DataTreeDAL 8 { 9 class TreesNodeDAL10 {11 //根据Parentid返回表中所有的的实体对象12 public IEnumerable<ItemsNode> GetEveryOneB... 阅读全文
posted @ 2012-04-04 00:37 Halower 阅读(2051) 评论(0) 推荐(2) 编辑
摘要:FileStream 1 static void Main(string[] args) 2 { 3 //创建FileStream对象需要指定 文件名,打开模式,访问模式,共享模式 4 //1.调用本身的构造函数创建流 5 FileStream fs1 = new FileStream(@"F:\1.txt", FileMode.Open, FileAccess.ReadWrite,FileShare.ReadWrite); 6 //2.利用File类或者FileInfo类的O... 阅读全文
posted @ 2012-04-02 01:50 Halower 阅读(544) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示