- 博客(65)
- 资源 (53)
- 收藏
- 关注
翻译 Head First C# 中文版 第12章 回顾与前瞻 page554
操作成群的蜜蜂你的蜜蜂应该已经在蜂巢附近和田园中嗡嗡的飞,模拟器已经可以运行了!很酷吧?但是由于我们没有做好模拟器的可视化部分--我们下一章做这些--我们现在掌握的信息只有蜜蜂使用回调传递回来的消息。所以我们来添加更多的关于蜜蜂在做什么的信息吧。
2009-06-28 16:49:00 652
翻译 Head First C# 中文版 第12章 回顾与前瞻 page551
试运行你已经做了很多工作了。编译你的代码,修正所有打字错误,然后运行模拟器。看起来怎么样? 现在是你把所学的知识付诸实践的时候了。我们需要让蜜蜂告诉模拟器他们在做什么。这时,我们要让模拟器的状态栏的信息更新。这次,你不仅要负责编写代码,还要负责决定写什么代码。你如何才
2009-06-27 22:55:00 516
翻译 Head First C# 中文版 第12章 回顾与前瞻 page550
你的任务就是给startSimulation和reset按钮编写事件处理方法。
2009-06-27 18:37:00 471
翻译 Head First C# 中文版 第12章 回顾与前瞻 page549
你的任务就是给ToolStrip中的startSimulation和reset按钮编写事件处理方法。下面是每个按钮需要做的事情:1.最开始,第一个按钮应该写有“Start Simulation”,点击它会使得模拟器启动,并且其上的文本改变为“Pause Simulation”。如果模拟器暂停了,按钮上的文字应该改变
2009-06-27 09:13:00 524
翻译 Head First C# 中文版 第12章 回顾与前瞻 page548
给模拟器添加一个Timer控件我们来给模拟器添加一个Timer。你已经有一个Timer了,可能叫做timer1。我们可以把Timer和一个我们手动写的RunFrame()方法联系起来,而不是让IDE去生成timer1_Tick()方法:
2009-06-26 22:52:00 470
翻译 Head First C# 中文版 第12章 回顾与前瞻 page547
Timer在幕后使用一个委托C#和.NET如何告诉Timer每过一个时间段要做什么?Timer每次是如何调用timer1_Tick()方法的?我们要像上一章一样去讨论事件和委托了。使用IDE的“转到定义”功能来复习一下事件处理委托是如何工作的:④右击timer1变量并选择“
2009-06-26 16:57:00 595
翻译 Head First C# 中文版 第12章 回顾与前瞻 page546
Timer会一次又一次的触发事件还记得你是怎么用一个循环来驱动猎犬的吗?其实我们有更好的办法。Timer是一个特别有用的控件,它可以一次又一次的触发事件,每秒钟可以上千次。如下做:①创建一个有三个按钮和一个Timer的新项目向窗体上拖拽三个按钮和一个Ti
2009-06-26 13:40:00 456
翻译 Head First C# 中文版 第12章 回顾与前瞻 page545
我们可以使用World来获得统计数据现在我们想要更新所有的控件。不过不需要给每一个控件添加一个点击事件处理方法,我们可以用一个方法来更新模拟器窗口中的所有统计数据:
2009-06-25 20:53:00 469
翻译 Head First C# 中文版 第12章 回顾与前瞻 page544
主窗体让世界运行起来好的,你已经知道了世界的Go()方法被调用一次它就前进一帧。但是是谁在调用Go()方法呢?当然是主窗体了!给你的项目添加一个新窗体。把它做成下面的窗体的样子。我们用到了一些新控件,我们会在接下来的几页之内讲解它们的。
2009-06-25 16:15:00 466
翻译 Head First C# 中文版 第12章 回顾与前瞻 page542
赋予蜜蜂行为当前我们的Bee的Go()方法还缺少很多代码。我们之前写了它的一些状态,但是还有一些剩下的(Idle还不完整,还有FlyToFlower和MakingHoney)。我们来把它们完成:
2009-06-21 22:34:00 453
翻译 Head First C# 中文版 第12章 回顾与前瞻 page541
③更新World的代码来把自己传递给Hive更新World的代码来让它在创建新Hive的实例的时候把自己的引用传递进去。 ④给Hive可以创建的蜜蜂数一个上限Hive类有一个MaximumBees常量,它决定了Hive可以支持多少蜜蜂(蜂
2009-06-20 18:29:00 684
翻译 Head First C# 中文版 第12章 回顾与前瞻 page540
我们已经有了四个核心类,我们需要做一些工作来把它们联系起来。遵循下面的步骤来做。但是要知道:在完成之前你必须修改几乎每一个类的某些地方。①修改Bee来接受Hive和World的引用。现在有了Hive和World类,Bee对象需要知道它们。更新你的代码来让Bee在其构造方法中接受
2009-06-20 12:23:00 525
翻译 Head First C# 中文版 第12章 回顾与前瞻 page539
问:为什么在GetLocation()方法中抛出了一个异常呢?答:为了防止传入的参数不合法。这样在传入的参数不合法的时候就会爆出异常,可以帮助你调试错误。问:既然我们不把蜜蜂绘制出来那为什么还要把位置存储在Point对象里面呢?答:无论绘制与否,蜜蜂都需要记
2009-06-19 21:50:00 505
翻译 Head First C# 中文版 第12章 回顾与前瞻 page538
我们已经有了四个核心类,我们需要做一些工作来把它们联系起来。遵循下面的步骤来做。但是要知道:在完成之前你必须修改几乎每一个类的某些地方。①修改Bee来接受Hive和World的引用。现在有了Hive和World类,Bee对象需要知道它们。更新你的代码来让Bee在其构造方法中接受
2009-06-18 18:08:00 504
翻译 Head First C# 中文版 第12章 回顾与前瞻 page537
我们在模拟器中用到的面向对象的一个重要原则就是封装。看看你可不可以根据观察我们已经写过的类来找出每个类中两个封装的例子。下面是我们想出来的,你有没有想出别的来?Hive:蜂巢的Locations字典是私有的;它给蜜蜂提供了一个添加蜂蜜的方法。Bee:蜜蜂的位置和年龄都是只读的,这样其他类将
2009-06-18 09:15:00 482
翻译 Head First C# 中文版 第12章 回顾与前瞻 page536
下面是World的代码World类实际上是我们的模拟器中的相对简单一点的类。下面是代码:
2009-06-17 11:01:00 462
翻译 Head First C# 中文版 第12章 回顾与前瞻 page535
我们在构建一个回合制的系统每个对象的Go()方法都应该在我们的模拟器中的每一轮,或者叫做每一个回合中被调用。每一轮可以是任意的一段时间...比如说,一轮可以是10秒,或者60秒,或者是10分钟。每一轮在动画中表现为一帧,所以世界每一轮只改变一小点。关键是每一轮都会影响世
2009-06-16 10:11:00 527
翻译 Head First C# 中文版 第12章 回顾与前瞻 page534
我们准备好了来写World类了有了Hive,Bee和Flower类,我们可以开始写World类了。World负责协调模拟器中的每一个方面:记录所有的蜜蜂,告诉蜂巢是否有足够的控件来容纳更多的蜜蜂,定位花朵,等等: World对象维持所有事物的运行
2009-06-15 17:23:00 481
翻译 Head First C# 中文版 第12章 回顾与前瞻 page533
蜂巢的Go()方法我们给Flower类写了一个Go()方法,给Bee类也写了一个Go()方法(虽然还有一些代码要补充)。下面是Hive类的Go()方法: 不幸的是,这不太现实。很多时候,蜂后没有时间来生育幼蜂。我们没有一个QueenBee类,但是我们来假设蜂
2009-06-15 11:27:00 460
翻译 Head First C# 中文版 第12章 回顾与前瞻 page531
真正的代码是一点一点写出来的如果可以一次性写完一个类的代码,编译,测试,然后把它放到一边,再来写另一个类的话自然是很好的。不幸的是,这是不可能的。通常,你会像我们这一章一样写代码:一点一点的。我们可以创建差不多整个的Flower类,但是到了Bee类的时候,我们就还有一些工作要做(多数就是告诉蜜蜂在每一种状态之下做什么)。现在,对于Hive
2009-06-14 22:21:00 565
翻译 Head First C# 中文版 第12章 回顾与前瞻 page529
编写Hive的代码是你的任务。①编写Hive类的框架代码就像编写Flower类时一样,你应该开始先给Hive类写一个骨架代码。类图如右图所示。把Honey设置为只读的自动属性,locations要是私有的,beeCount只在内部使用,所以
2009-06-14 15:31:00 517
翻译 Head First C# 中文版 第12章 回顾与前瞻 page528
P.A.H.B(Programmers Against Homeless Bees)我们已经有了蜜蜂和充满花粉的花朵。我们需要写一些代码来让蜜蜂采集花粉,但是在此之前,蜜蜂最初是在哪儿被创建的呢?它们又把花粉带到哪儿去?这时就用到了Hive类(蜂巢)。蜂巢不仅仅是蜜蜂们的归宿。它内部有很多地点,每一个地点都对应着世界中的
2009-06-14 10:38:00 621
翻译 Head First C# 中文版 第12章 回顾与前瞻 page526
蜜蜂可以做很多事情。给蜜蜂创建一个叫做BeeState的枚举。还需要创建一个只读的自动属性,叫做CurrentState,它用来让蜜蜂保存自己的状态。把蜜蜂的初始状态设置为idle(空闲),还有,在Go()方法中,写一个switch语句,其中药含有枚举中每个枚举项的选项。
2009-06-13 12:28:00 519
翻译 Head First C# 中文版 第12章 回顾与前瞻 page525
蜜蜂可以做很多事情。给蜜蜂创建一个叫做BeeState的枚举。还需要创建一个只读的自动属性,叫做CurrentState,它用来让蜜蜂保存自己的状态。把蜜蜂的初始状态设置为idle(空闲),还有,在Go()方法中,写一个switch语句,其中药含有枚举中每个枚举项的选项。
2009-06-13 11:14:00 454
翻译 Head First C# 中文版 第12章 回顾与前瞻 page524
现在我们需要一个Bee类花朵上的花粉准备好要被采集,所以我们需要一个Bee类。下面是Bee类的基本代码。蜜蜂知道自己的年龄,知道自己是否在蜂巢中,知道自己可以采集多少花粉。我们还会添加一个方法来把蜜蜂向着某个特定的目的地移动。
2009-06-13 10:23:00 444
翻译 Head First C# 中文版 第12章 回顾与前瞻 page523
花之生死我们的花朵会经过一个基本的过程,生长,增加花粉,收获花粉,并且最终死掉: 问:NectarHarvested变量在类中似乎除了给它增加值之外就没有用到,这个变量是做什么用的呢?答:好眼力!我们是提前做了计划的,模拟器会监视花朵们一共产出了多少花粉,以供统计之用。所以
2009-06-12 21:49:00 472
翻译 Head First C# 中文版 第12章 回顾与前瞻 page521
任何使用了Point类型的类文件中都需要添加using System.Drawing;。③创建构造方法Flower类的构造方法需要接受一个Point来指明花朵的位置,还要接受一个Random类的实例。你应该可以用这些变量来设置花朵的位置,把年龄设置为0,设置花朵为活着的,并且
2009-06-12 15:59:00 539
翻译 Head First C# 中文版 第12章 回顾与前瞻 page520
我们来直接跳到代码。首先,我们需要一个Flower类。Flower类需要一个由Point定义的位置,有年龄,还有寿命。随着时间的流逝,鲜花会变老。然后,当年龄到达了寿命值的时候,花朵会死去。你的任务就是把这些实现出来。①写出Flower类的框架代码下面是Flower类的类图。
2009-06-12 09:23:00 548
翻译 Head First C# 中文版 第12章 回顾与前瞻 page519
创建蜂窝模拟器当然,我们还没有创建过如此复杂的东西,所以我们需要永几章的篇幅来把所有东西组合起来。在此过程中,你会学到添加timer控件,LINQ,还有很多图形编程技巧。下面是你在本章中需要做的(接下来会有更多): ①创建一个Flower类,它会变老,长
2009-06-11 22:35:00 518
翻译 Head First C# 中文版 第12章 回顾与前瞻 page518
蜂窝模拟器的架构下面是蜂窝模拟器的架构。尽管蜂窝模拟器会去管理很多不同种类的蜜蜂,但是总体的对象模型还是挺简单的。
2009-06-11 21:47:00 500
翻译 Head First C# 中文版 第12章 回顾与前瞻 page517
我们还做过养蜂人早在第六章,我们创建了一些与蜜蜂有关的类。还记得吗? 但是我们现在可以做得更好...从第六章以来你已经学到了很多知识。我们来从零开始,创建一个动画的蜂巢模拟器。我们最后要做出一个用户界面来显示蜜蜂维护的蜂窝和田园,还有一个状态窗口给用户显示蜜蜂在做什么。
2009-06-11 19:04:00 565
翻译 Head First C# 中文版 第12章 回顾与前瞻 page516
你已经走过一段漫长的道路了自从我们第一次用IDE抢救了Objectville纸业公司以来,我们已经走过了漫长的道路。下面是你在过去的几百页中做过的一些事情:
2009-06-10 12:27:00 767
Head.First.C#.中文版.图文皆译.第十一章.事件和委托.翻译完毕.PDF下载
2008-11-14
Head.First.C#.中文版.图文皆译.第二章.PDF
2008-10-31
Head.First.C#.中文版.第一章
2008-10-20
niit j2me 作业题+答案
2008-09-08
使用AvalonDock制作WPF多标签浏览器
2010-03-17
Words Via Subtitle
2009-09-10
通过英文剧集、电影学单词
2009-09-03
easyMule自动关机工具(可用于1.X和2.0版本)
2009-09-01
MLDN魔乐科技_Oracle课堂19_修改约束、ROWNUM
2009-04-20
MLDN魔乐科技JAVA培训_Oracle课堂14_SQL语法练习1
2009-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人