博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 19 下一页

2011年3月28日

摘要: GDI+由.NET基类集组成,这些基类可用于在屏幕上完成定制绘图,能把合适的指令发送到图形设备的驱动程序上,确保在监视器屏幕上显示正确的输出(或打印到硬拷贝中)。一、理解绘图规则1、 GDI和GDI+一般来说,Windows的一个优点(实际上是现代操作系统的一个优点)是它可以让开发人员不考虑特定设备的细节,例如:不需要理解硬盘设备驱动程序,只需在相关的.NET类中调用合适的方法(以前是等价的Windows API 函数),就可以编程读写磁盘上的文件。这些规则也适用于绘图,计算机在屏幕绘图时,把指令发送给视频卡,问题是市面上有几百种不同的视频卡,大多数有不同的指令集和功能,如果把这个考虑在内,在 阅读全文

posted @ 2011-03-28 21:31 steve.z 阅读(409) 评论(0) 推荐(0)

摘要: 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。 耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。 降低模块间的耦合度能减少模块间的影响,防... 阅读全文

posted @ 2011-03-28 20:33 steve.z 阅读(2084) 评论(0) 推荐(0)

摘要: 实际上还是父类分配父类的内存空间,子类分配子类的内存空间。[子类只分配自己特有的成员的内存,其他的使用父类的],最终合并到了一起,这里只是这么理解。通过this.age和base.age使用同一个内存地址也可以看出,这种理论也可以解释为什么构造函数不能被继承,只能子类来调用父类的构造函数。因为父类构造函数是要用来为父类分配内存空间,子类“调用”而非“继承”父类构造函数。然后在调用自己的构造函数。 如果子类重写父类的方法时,通过虚方法表来寻找子类的实现。在实例化子类对象时,是先构造父类的内存块,然后再构造子类的(子类相对于父类扩展了的那些)。编译器的调用过程是先调用基类的构造函数,对派生类中的基 阅读全文

posted @ 2011-03-28 14:16 steve.z 阅读(373) 评论(0) 推荐(0)

摘要: “类型安全” “静态类型安全”,在编译时检查类型是否一致。 “动态类型安全”,.net4.0里的dynamic类型,在运行时,会提前获得dynamic类型实际的类型。(异常不知道算不算?) string[] s = new string[10]; for (int i = 0; i < 100; i++) { Console.WriteLine(s[i]); } 对任何引用的对象进行操作,CLR都知道此对象是何种类型的; CLR在对一个引用对象进行操作时,它先会检查此引用的类型, 查看本次操作是否有效;若无效,编译将不能通过。 从另一个方面来说, “C#是类型安全的”指的是: CLR在程 阅读全文

posted @ 2011-03-28 11:24 steve.z 阅读(1265) 评论(0) 推荐(0)

摘要: 本着代码重用,减少变量的创建,希望参数能够重复使用.错误如下:另一个 SqlParameterCollection 中已包含 SqlParameter。错误详细信息:System.ArgumentException: 另一个 SqlParameterCollection 中已包含 SqlParameter。具体原因:声明的SqlParameter数组,而在循环的内部,每一次执行ExecuteNonQuery都由该方法内部的IDbCommand.Parameters.Add(IDbDataParameter)将SqlParameter数组添加到IDbCommand的IDataParameterC 阅读全文

posted @ 2011-03-28 09:11 steve.z 阅读(1063) 评论(0) 推荐(1)

2011年3月25日

摘要: Lucene.net 项目有将近1年没有出官方版本了,从去年年初就听说好像出什么问题了,但一直没有看到官方说法。最近搜了一下,这个项目好像确实停了。Apache 开源基金会已经把这个项目的主页下掉了,放到孵化器里面去了。这个项目目前用户还是很多的,包括博客园的找找看,我估计也是基于这个 lucene.net 的,停了还是比较可惜的,希望它的分支能继续发展起来。下面把我看到的相关文章,我大概给介绍一下,看看这个项目到底是出了什么问题。首先看这篇:Lucene.Net needs your help (or it will die)这篇文章是去年11月1日发布的,这个帖子大概是说 Lucene.n 阅读全文

posted @ 2011-03-25 09:47 steve.z 阅读(289) 评论(0) 推荐(1)

2011年3月24日

摘要: 1.关于bin目录和obj目录 Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。 obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译 阅读全文

posted @ 2011-03-24 14:05 steve.z 阅读(2203) 评论(0) 推荐(0)

摘要: 生成、重新生成或清理整个解决方案在解决方案资源管理器中,选择或打开所需的解决方案。 在“生成”菜单上,选择“生成解决方案”、“重新生成解决方案”或“清理解决方案”。 选择“生成”或“生成解决方案”,将只编译自上次生成以来更改过的那些项目文件和组件。 说明:如果解决方案中包括多个项目,则“生成”命令将变成“生成解决方案”。 选择“重新生成解决方案”,将首先“清理”解决方案,然后生成所有项目文件和组件。 选择“清理解决方案”将删除所有中间文件和输出文件,只留下项目文件和组件文件,以后可以从这些文件生成中间文件和输出文件的新实例。生成或重新生成单个项目在解决方案资源管理器中,选择或打开所需的项目。 阅读全文

posted @ 2011-03-24 11:31 steve.z 阅读(1835) 评论(0) 推荐(0)

2011年3月22日

摘要: http://reflectoraddins.codeplex.com/ 阅读全文

posted @ 2011-03-22 15:52 steve.z 阅读(272) 评论(0) 推荐(0)

2011年3月14日

摘要: Delegate.InvokeDelegate.Invoke is used to execute a delegate on the current thread. A delegate is just a reference to a function or method, and Delegate.Invoke is the mechanism to call this function or method (similar to a normal function call).Delegate.BeginInvokeDelegate.BeginInvoke is used to exe 阅读全文

posted @ 2011-03-14 13:31 steve.z 阅读(1237) 评论(0) 推荐(1)

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 19 下一页