木子屋 Dnawo's BLOG

2007-12 归档

共 64 篇

程序员的成长从开窍开始

最近,有两位Google Maps API的初学者向我请教他们按照最简单例子写的程序为什么不能正常的运行。 其中一位用GTalk跟我交流,我仔细了看了他的代码,没看出问题,把代码保存在本地,打开Firefox的错误控制台,用Firefox打开他的页面。出错的那一行被清晰的显示出来,我再仔细端详那句话,原来有两个应该是英文逗号的地方,写上了中文逗号。 另一位,在我的论坛跟我交流他的Google Maps API中遇到的问题,我看他代码的时候也没有马上发现问题。然而,同样在用Firefox打开后,问题很明显的找到了,原来是一个方法openInfoWindow被他写成OpenInfoWindow了。…

实例化委托的两种方法:命名方法和匿名方法

1.命名方法 2.匿名方法 使用匿名方法,则不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。如果创建方法所需的系统开销是不必要的,在委托的位置指定代码块就非常有用。

何时使用委托而不使用接口

委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何类或结构继承和实现;可以为任何类中的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢? 在以下情况中使用委托: ● 当使用事件设计模式时。 ● 当封装静态方法可取时。 ● 当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。 ● 需要方便的组合。 ● 当类可能需要该方法的多个实现时。 在以下情况中使用接口: ● 当存在一组可能被调用的相关方法时。 ● 当类只需要方法的单个实现时。 ● 当使用接口的类想要将该接口强制转换为其他接口或类类型时。…

合并委托(多路广播委托)

委托对象的一个用途在于:可以使用 + 运算符将它们分配给一个要成为多路广播委托的委托实例,注意只有相同类型的委托才可以组合;可以使用- 运算符从组合的委托移除组件委托。 结果: Invoking delegate a: Hello, A! Invoking delegate b: Goodbye, B! Invoking delegate c: Hello, C! Goodbye, C! Invoking delegate d: Goodbye, D! 从示例中我们可以看出组合的委托将依次调用组成它的那两个委托。 需要说明的是如果委托使用引用参数,则引用将依次传递给两个方法中的每个方法,由一个方法引起的更改对下一个方法是可见的。如果任一方法引发了异常,而在该方法内未捕获该异常,则该异常将传递给委托的调用方,并且不再对调用列表中后面的方法进行调用。如果委托具有返回值和/或输出参数,它将返回最后调用的方法的返回值和参数。

一个很COOL的图片验证码程序[含源码]

声明:本程序系本人原创,引用时请保留以下信息: -------------------------------------------------------------------------------- 阿山Net http://www.zpxp.com 萝卜鼠在线图形图像处理 http://www.wingoon.com -------------------------------------------------------------------------------- 一、先看看效果 http://www.wingoon.com首页登录口(大小为:75*21) http://app.wingoon.com/job/member/member_login.aspx?requestUrl=/job/member/index.aspx(大小为:100*32)…

C# 验证码的三种做法[纯数字][纯汉字][字母\数字\汉字混合]

网上有很多关于验证码做法的资料,但是真正做得完整的却非常少,所以昨天晚上参考了作者:CSDN 上kwklover 的在ASP.NET下实现数字和字符相混合的验证码 (混合,完整,遗憾的是vb.net,说到这里我想我得感谢stone(QQ9337874),因为我在把VB译成C#的过程中几番出错,最终这段翻译由他完成)!! 随机汉字参考了http://navicy.cnblogs.com/archive/2005/05/08/150756.html这篇文章的, 而最终的纯数字以及GDI+绘图则是从□☆近三十☆(QQ19302038)传给我的一个OA案例里面分离出来的! 所以完整的说,这里面几乎都是别人做好了的,我只是整理出来了!…

用C#生成随机中文汉字验证码的基本原理

前几天去申请免费QQ号码,突然发现申请表单中的验证码内容换成了中文,这叫真叫我大跌眼镜感到好笑,Moper上的猫儿们都大骂腾讯采用中文验证码。^_^ 我不得不佩服腾讯为了防止目前网络上横行的QQ号码自动注册机而采取中文验证码的手段。仔细想了想感觉用程序生成随机的中文验证码并不是很难,下面就来介绍一下使用C#生成随机的中文汉字的原理。 1、汉字编码原理 到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出几个汉字组合就行了呢?使用后台数据库先将所有汉字存起来使用时随机取出,这也是一种办法,但是中文汉字有这么多,怎么来制作呢?其实可以不使用任何后台数据库,使用程序就能做到这一切。要知道如何生成汉字,就得先了解中文汉字的编码原理。…

ASP.NET 2.0缓存

一、页输出缓存 1.设置 ASP.NET 页缓存的两种方式 1.1 以声明方式设置 ASP.NET 页的缓存 以声明方式设置 ASP.NET 页的缓存的方法是在页中使用 @ OutputCache 指令,它的常用属性如下: Duration:设置缓存到期时间,单位:秒。 VaryByParam:可用来使缓存输出因查询字符串而异,多个查询字符用分号隔开(get或post参数均可)。 VaryByControl:可用来使缓存输出因控制值而异。 VaryByHeader:可用来使缓存输出因请求的 HTTP 标头而异。 VaryByCustom:可用来使缓存输出因浏览器类型或您定义的自定义字符串而异。…

ASP.NET 2.0缓存相关概念

通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需要经常更新的页,则在每次请求时服务器都重新创建该页会使工作效率低下。 在这些情况下,为了帮助您提高应用程序的性能,ASP.NET 使用两种基本的缓存机制来提供缓存功能。第一种机制是应用程序缓存;第二种机制是页输出缓存,ASP.NET 为页输出缓存提供了两种模型:整页缓存和部分页缓存,部分页缓存又可采用两种工作方式:控件缓存和缓存后替换。整个 ASP.NET 缓存机制及其模型如下图示: -----------------------------------------------------------------…

Discuz!NT 2.0正式开源 促进ASP.net社区普及应用

12月24日,国内最大的互联网社区产品及服务提供商康盛创想(Comsenz)正式对外开放Discuz!NT 2.0源代码,同时发布的还有该产品的类库文档和数据字典。此举意味着站长针对Discuz!NT进行二次开发和网站整合将变得更为简易快捷。 Discuz!NT是Comsenz公司自主研发的基于ASP.net平台的社区软件系统,凭借安全、高效、易用等特点自1.0版本推出以来迅速成长为国 内ASP.net论坛产品中的领头羊,同时也吸引了大量原ASP论坛用户的转换。由于特别为高负荷环境进行了各种技术优化,许多基于Windows服务器 架构的知名大型网站也将Discuz!NT作为自己的社区软件平台。 5月28日,Comsenz曾将Discuz!NT 1.0 正式开放源代码下载,并同步提供源代码配套说明文档和二次开发范本,帮助用户根据自己的喜好添加自己个性化的功能。在.Net社区论坛软件领域, Discuz!NT也因此成为第一个在国内宣布开源计划的成熟产品。…