Lookup<TKey,TElement>类型对象和分组是一样的,就好比使用Linq的group关键字后所查询出来的结果,使用foreach的时候,都可以用IGrouping<TKey,TElement>来迭代它们.Lookup<TKey,TElement>也是一种字典,不过它是一对多,不像Dictionary<TKey,TElement>一样是一对一的.Lookup<int,int>和Dictionary<int,List<int&…
有效调试不仅仅是排除缺陷,其包含如下几个步骤 弄明白软件为何运行错误 修复这个问题 避免破坏其它部分 保持或者提高代码的总体质量 确保同样的问题不在其它地方发生,也不会再次发生 构建实验.观察结果 依赖观察和经验,而不是理论和纯逻辑推理 阅读源码,推理软件的运行状况,通常效率低下而危险 要仔细的构建实验环境并观察软件的运行状况 需要澄清的几个问题 你知道发生了什么吗? 要明确知道到底发生了什么,什么情况下发生的. 不要完全依赖缺陷报告,缺陷报告本身的错误也不会少 如果没有缺陷报告,应该在了解整个…
系统提供的dispatch方法如下: //系统提供的dispatch方法 //后台执行: dispatch_async(dispatch_get_global_queue(0, 0), ^{ // something }); //主线程执行: dispatch_async(dispatch_get_main_queue(), ^{ // something }); //一次性执行: static dispatch_once_t onceToken; dispatch_once(&onceToke…
<项目管理实战:Microsoft Project精髓与方法>是Bonnie Biafore 写的一本书.Bonnie Biafore 作为项目管理师(PMP),她有20余年为大中小型客户提供项目管理服务的实践经验:作为多产的作家,著有项目管理.投资.个人理财.Microsoft Project.QuickBooks等领域相关图书20余部,其NAIC Stock Selection Handbook(选股手册)荣获技术交流学会(STC)及APEX优秀出版物大奖.她还为微软项目管理软件用户协会(…
load()方法通常用来从Web服务器上获取静态的数据文件,然而这并不能体现ajax的全部价值. 在项目中,如果需要传递一些参数给服务器中的页面,那么可以使用$.get()或者$.post()方法(或者是$.ajax()方法) $.get()方法使用GET方式来进行异步请求.结构为:$.get(url [, data] [, callback] [, type]) $.get()方法参数解释如下: 参数名称 类型 说明 url String 请求的HTML页的URL地址 data(可选) Obj…
第12条:考虑实现Comparable接口 这一条非常简单.就是说,如果类实现了Comparable接口,覆盖comparaTo方法. 就可以使用Arrays.sort(a)对数组a进行排序. 它与equals方法有点类似,但是,因为Comparable接口是参数化的,而且comparable方法时静态的类型,因此不必进行类型检查,也不需要对它的参数进行类型转换.返回负值代表小,正值代表大,0代表相等.…
第10条:始终要覆盖toString 这一条没什么好讲的,就是说默认的toString方法打印出来的是类名+@+十六进制哈希码的值.我们应该覆盖它,使它能够展示出一些更为详细清晰的信息,这个看实际情况吧. 第11条:谨慎地覆盖clone 有时候会出现这样的场景,你需要备份一些数据,对其一进行修改时,另外一个不受影响.这样,直接Foo a = new Foo(); Foo b = a; 是不可行的,b引用和a指向的是同一个对象. 这一条讲了很多,最后的总结是,Cloneable接口坑很多,因此最好…
第8条:覆盖equals时请遵守通用约定 ①约定的内容 自反性.对于任何非null的引用值x.x.equals(x)必须返回true. 对称性.对于任何非null的引用值x和y.当且仅当y.equals(x)返回true时,x.equals(y)必须返回true. 传递性.对于任何非null的引用值x.y和z,如果x.equals(y)返回true,并且y.equals(z)也返回true,则x.equals(z)也必须是true. 一致性.对于任何非null的引用值x和y,只要equals的比…
Main方法是C#控制台应用程序和Windows窗体应用程序的入口点.Main方法可以有形参,也可以没有,可以有返回值(int整型),也可以没有.如下定义: 无返回值.无形参的格式: static void Main(){ //to do sth } 无返回值.有形参的格式: static void Main(string[] args){ //to do sth } 有返回值.无形参的格式: static int Main(){ //to do sth ; } 有返回值.有形参的格式: sta…
十大秘诀 1.产品经理即是产品负责人,他代表了客户的需求,因而需要与产品开发团队保持密切的联系,协助督促开发进程,及时解决出现的问题 2.使用敏捷方法绝不等于省略产品规划.规划周期应该适度缩短,反复迭代,采用轻量级的机会评估方法替代冗长的市场需求文档 3.产品经理和设计师的工作进度应该比开发团队领先一两个迭代周期,确保你们有足够的时间攻克难题.始终让开发人员参与评估产品设计和产品原型,及时反馈关于可行性.成本.解决方案的建议 4.尽量把产品设计工作拆分成独立的部分,目标是设计出符合基本的产品.设…