摘要: C#的internal关键字可以使标记的方法,字段或者属性等等只能在当前assembly内部使用,那么如果其他的assembly需要使用这个internal的方法的时候怎么办呢?.NET提供了一种类似于C++中的友元类的方式来完成这个功能,那就是使用InternalsVisibleTo。这种情况常见于做测试的时候,需要另外一个项目来测试项目中的internal方法所标记的功能,所以有了InternalsVisibleTo,我们就不用为了做单元测试而把一个本不该公开的方法改为public了.使用InternalsVisibleTo还有一些需要注意的地方,特别是PublicKey不太容易弄的明白, 阅读全文
posted @ 2011-10-31 09:58 林博然 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 相对NHibernate“O/R”而言,IbatisNet是一种“Sql Mapping”的ORM实现。NHibernate对数据库结构提供了较为完整的封装,NHibernate的O/R Mapping实现了PO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了PO 到数据库表的映射关系,即可通过NHibernate提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, NHibernate 会根据制定的存储逻辑,自动生成对应的SQL 并调用ADO.NET接口加以执行。而IbatisNet的着力点,则在于PO 与SQL之间的映射关系。也就是说,IbatisN 阅读全文
posted @ 2011-10-26 10:47 林博然 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 最近做了个反射的项目,在测试性能的时候,习惯性的用了Datetime.now来设置时间戳。在测试大量对象反射时,时间戳的结果让我大吃一惊。见下图:先看看100*100数量级的结果:反射的效率大约比直接赋值慢30%。在看看100*1000数量级的测试结果:奇怪的事情发生了,数量级多了10倍,但反射与手动赋值的效率比却有很大的变化。并且手动赋值(红色线)异常波动频繁,高的时候比反射慢,快的时候几乎为0。这怎么可能呢?后来才意识到,原来是使用了Datetime.now的时间戳导致的,这种低精度时间戳并不适用于此类效率测试。把时间戳更换为高精度的System.Diagnostics.Stopwatch 阅读全文
posted @ 2010-12-23 10:54 林博然 阅读(7138) 评论(2) 推荐(2) 编辑
摘要: 甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量也是相等的。在不将鱼倒出来的前提下,怎么将鱼和筐平分为三份?问题分析:根据提议可知:每个人应分到7个箩筐,每人各3.5筐鱼。采用3*3数组来表示三个人分到的东西。数组的每行每列元素之和都是7;数组行... 阅读全文
posted @ 2010-04-29 14:56 林博然 阅读(977) 评论(0) 推荐(0) 编辑
摘要: A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,他将鱼分成五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分成五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。问他们合伙至少捕了多少条鱼?[代码] 阅读全文
posted @ 2010-04-28 17:35 林博然 阅读(901) 评论(0) 推荐(0) 编辑
摘要: 假设银行整存整取不同期间的月息利率分别为:1年:0.63%2年:0.66%3年:0.69%5年:0.75%8年:0.84%现在某人手中有2000元,请通过计算选择一种存钱方案,使得前存入银行20年后得到的本息和最多(假定银行对超过存款期限的部分时间不付利息)[代码] 阅读全文
posted @ 2010-04-28 15:27 林博然 阅读(475) 评论(0) 推荐(0) 编辑
摘要: [代码] 阅读全文
posted @ 2010-04-27 17:01 林博然 阅读(497) 评论(0) 推荐(0) 编辑
摘要: /* * 小明有5本书,要借给ABC三位小朋友,若每人每次只能借1本书,则可以有多少种不同借法?* 例:5本书编号:0,1,2,3,4 */[代码] 阅读全文
posted @ 2010-04-27 13:34 林博然 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 用“*”,在屏幕上打印出一个圆形。[代码] 阅读全文
posted @ 2010-04-27 11:25 林博然 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 配置httpRuntime也可以让FileUpload上传更大的文件,不过设置太大了会因用户将大量文件传递到该服务器而导致的拒绝服务攻击(属性有说明)<httpRuntime><httpRuntime useFullyQualifiedRedirectUrl="true|false" maxRequestLength="size in kbytes" executionTimeo... 阅读全文
posted @ 2010-01-27 14:25 林博然 阅读(474) 评论(0) 推荐(0) 编辑