2011年9月23日
摘要:
在js中----------
Javascript也提供了对数字进行格式化输出的支持
Number对象提供的几种格式化函数:
toExponential([fractionDigits]) :将数字按科学计数法格式返回,其中的fractionDigits值小数点后保留的位数。
toFixed([fractionDigits]) :将数字按指定的小数点位数返回,其中的fractionDigits值小数点后保留的位数。
toPrecision([precision]) :将数字按指定的精度返回(这个精度不是指小数点后几位),其中precision是指定的精度值
阅读全文
posted @ 2011-09-23 11:55
上校
阅读(690)
推荐(0)
摘要:
适配器模式(Adapter Pattern)
——.NET设计模式系列之八
概述
在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?这就是本文要说的Adapter 模式。
阅读全文
posted @ 2011-09-23 01:20
上校
阅读(251)
推荐(0)
摘要:
一、状态模式简介(Brief Introduction)
状态模式(State Pattern),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
二、解决的问题(What To Solve)
状态模式主要解决的是当控制一个对象状态装换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简单化。
当一个对象行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了。
阅读全文
posted @ 2011-09-23 00:59
上校
阅读(274)
推荐(0)
2011年9月21日
摘要:
概述
在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。
阅读全文
posted @ 2011-09-21 22:53
上校
阅读(230)
推荐(0)
2011年9月20日
摘要:
建造者模式(Builder Pattern)
概述
在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。
阅读全文
posted @ 2011-09-20 23:27
上校
阅读(283)
推荐(0)
摘要:
外观模式(Façade Pattern)
——.NET设计模式系列之十二
概述
在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的Façade 模式。
阅读全文
posted @ 2011-09-20 21:15
上校
阅读(287)
推荐(0)
2011年9月19日
摘要:
摘要:Template Method模式是比较简单的设计模式之一,但它却是代码复用的一项基本的技术,在类库中尤其重要。
主要内容
1.概述
2.Template Method解说
3..NET中的Template Method模式
4.适用性及实现要点
阅读全文
posted @ 2011-09-19 23:34
上校
阅读(251)
推荐(0)
摘要:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class App
{
public static void Main(string[] args)
{
abc abc1 = new abc();
abc1.a = "a";
abc1.b = "b";
abc1.c = "c";
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(memoryStream, abc1);
阅读全文
posted @ 2011-09-19 22:09
上校
阅读(224)
推荐(0)
摘要:
原型模式(Prototype Pattern)
——.NET设计模式系列之六
概述
在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构。这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适。那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化?
阅读全文
posted @ 2011-09-19 00:56
上校
阅读(273)
推荐(0)
2011年9月18日
摘要:
工厂方法模式(Factory Method)
——.NET设计模式系列之五
概述
在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。
阅读全文
posted @ 2011-09-18 20:20
上校
阅读(425)
推荐(0)
摘要:
摘要:在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。
主要内容
1.例说Proxy模式
2.Proxy模式效果及实现要点
阅读全文
posted @ 2011-09-18 11:12
上校
阅读(214)
推荐(0)
摘要:
“装饰模式(Decorator)”又名“包装模式(Wrapper)”,通常用来灵活地扩充对象的功能。
在此之前我们可以通过类的继承来扩充父类的功能,但这种继承方式缺乏灵活性,并且会导到子类数量的快速膨胀。恰当地使用装饰模式我们会轻松实现在控制子类数量的基础上,灵活地实现对象功能的扩展。装饰模式比类的继承更灵活。
阅读全文
posted @ 2011-09-18 00:26
上校
阅读(415)
推荐(0)
2011年9月16日
摘要:
使用Lambda表达式:
delegate T delegateMul(T x, T y);
static T Multi_Mul(T[] nums, delegateMul func)
{
阅读全文
posted @ 2011-09-16 14:16
上校
阅读(222)
推荐(0)
摘要:
Shift+Delete 整行删除,并且将这一行放到剪贴板(这时候不能选中一段内容)F12 转跳到定义,很有用的快捷键 F7 查看代码Shift+F7 查看设计页面F3查找下一个、查找当前光标选中的位置 Ctrl+E D 格式化代码
阅读全文
posted @ 2011-09-16 10:02
上校
阅读(191)
推荐(0)
2011年9月15日
摘要:
万事开头难,最近对这句话体会深刻!这篇文章是这个系列正式开始介绍设计模式的第一篇,所以肩负着确定这个系列风格的历史重任,它在我脑袋里默默地酝酿了好多天,却只搜刮出了一点儿不太清晰的轮廓,可是时间不等人,以后再多“迭代”几次吧!在前面的随笔里,我已经提到了,这个系列准备以《Head First Design Patterns》的结构为主线
阅读全文
posted @ 2011-09-15 23:25
上校
阅读(345)
推荐(0)
摘要:
委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。
阅读全文
posted @ 2011-09-15 14:35
上校
阅读(596)
推荐(1)
2011年9月14日
摘要:
最近在看一些关于设计模式方面的知识,打算把学习过程给记录下来,进一步加深自己的理解。
百度百科定义是:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是实由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单用的模式,可以理解为是不同工厂模式的一个特殊实现。
阅读全文
posted @ 2011-09-14 23:44
上校
阅读(223)
推荐(0)
2011年9月12日
摘要:
只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。还请确保在应用程序配置的 \\ 节中包括 System.Web.SessionStateMod 或自定义会话状态模块。解决方法如下: 1:检查你的
阅读全文
posted @ 2011-09-12 23:59
上校
阅读(1055)
推荐(0)
2011年9月11日
摘要:
在一般事务处理页面,可以轻松的得到 Request,Response对象,从而进行相应的操作,如下:
HttpRequest Request = context.Request;
HttpResponse Response = context.Response;
但是要得到 Session的值就没有那么简单了。比如你要在ashx得到保存在Session中的登录帐号Session["userAccount"]
如果你只是context.Session["userAccount"]的话是会报 “未将对象引用设置到对象的实例”的异常
阅读全文
posted @ 2011-09-11 14:14
上校
阅读(262)
推荐(0)
2011年8月29日
摘要:
SQLServer2005 XML在T-SQL查询中的典型应用
阅读全文
posted @ 2011-08-29 17:30
上校
阅读(333)
推荐(0)
摘要:
ADB2.3下载 ADB2.3源代码下载 Microsoft HTML Help Workshop下载
注意:使用该软件需先安装Microsoft HTML Help Workshop
程序的注释在程序的编写和维护中扮演着相当重要的角色,在Visual C#中,可以为代码创建文档,方法是在XML标记所指的代码块前面,直接在源代码的特殊注释字段中包括XML 标记。编译器编译时将在源代码中搜索所有的 XML 标记,并创建一个XML文档文件。.NET文档生成工具(下文简称为ADB)通过反射程序集及其代码中的XML注释来创建MSDN形式的API文档。
阅读全文
posted @ 2011-08-29 14:52
上校
阅读(369)
推荐(0)
posted @ 2011-08-29 12:44
上校
阅读(306)
推荐(0)
2011年8月27日
摘要:
索引器这个东东,我也是最近才接触,一般所说的索引器,是指定义在某个类里面的一个类似属性的东西。索引器是.net中新的类成员。类似与类的属性。有些人干脆称呼它为带参数的属性。
索引器可以快速定位到类中某一个数组成员的单元。下面看看代码:
Indexer
class indexerClass {
阅读全文
posted @ 2011-08-27 19:47
上校
阅读(233)
推荐(0)
2011年8月22日
摘要:
ado.net中的自动获取存储过程参数
阅读全文
posted @ 2011-08-22 13:29
上校
阅读(387)
推荐(0)
posted @ 2011-08-22 00:58
上校
阅读(1351)
推荐(0)
2011年8月18日
摘要:
Demo地址:http://files.cnblogs.com/zhuawang/flash_upload.rar
阅读全文
posted @ 2011-08-18 17:17
上校
阅读(350)
推荐(0)
2011年8月17日
摘要:
今天装好了VS2008 Beta2,就迫不及待地试用一下Linq中的ORM功能,在初步尝试后,发现Linq中的ORM还是非常不错的,通过反射查看System.Data.Linq.dll发现,Linq中的ORM是使用反射完成了OR的映射工作,基于此,我开始有点怀疑Linq中的ORM的性能问题。为了进一步研究问题,我写了一个简单的测试,在事务中,使用DataRabbit 3.0和 Linq to sql 以ORM的方式分别向数据库的Customer表中插入1000条数据,来看各自所需的时间。首先,Customer结构如下:测试的代码如下:(1)使用Linq ORM:DataClasses1Data
阅读全文
posted @ 2011-08-17 11:44
上校
阅读(252)
推荐(0)
摘要:
在上一篇文章《把Sql数据转换为业务数据的几种方法》中提到了ORM系统把Sql数据转换为业务数据的几种方法,但这些方法都不是最佳的方法,后有白菜园等朋友提出用DynamicMethod,发现该方法确实是一个理想的解决方案:1、在设计的时候业务实体类的定义非常简洁;2、在运行的时候效率比较高,在某些情况下,甚至与硬编码的效率相等。3、解偶了数据转换类和业务实体类之间的关系,可以对任意的业务实体类进行转换而不用对他们进行修改。经过简单测试,发现用DynamicMethod的时间大约是硬编码的1~1.2倍,而用反射所花的时间大约是硬编码和DynamicMethod的4~6.5倍。现与大家分享代码,期
阅读全文
posted @ 2011-08-17 10:58
上校
阅读(347)
推荐(0)
摘要:
ORM系统必须把数据库中的数据转换为业务数据,转换的方法大致有3种,本文就试图对它们做一些简单分析。1、属性反射。就是通过反射,获取业务实体类的各个属性,然后再设置这些属性的值。这个方法最简单、最稳定、通用性最强、可维护性最强、性能最差。例如NHibernate就是用这种方法实现的,它通过IGetter和ISetter接口实现对某个业务实体类属性的读取和写入。DongLiORM的早期版本也是用的这种方法,他通过BusinessObject的属性索引器实现。其原理就是首先通过获取某个业务实体类某个属性的PropertyInfo,然后调用该PropertyInfo的GetValue或者SetVal
阅读全文
posted @ 2011-08-17 10:57
上校
阅读(301)
推荐(0)
2011年8月16日
摘要:
using System;using System.Reflection;using System.Reflection.Emit;using System.Globalization;public class Test{ private delegate int HelloDelegate(string msg, int ret); public static void Main() { //------------ 创建动态方法 START ---------------------------------- Type[] helloArgs = { typeof(string), typ
阅读全文
posted @ 2011-08-16 23:33
上校
阅读(467)
推荐(0)