2008-03-16 日志:C#周末班授课总结

来源:互联网 发布:第三方数据分析工具 编辑:程序博客网 时间:2024/05/12 02:59

    时间过的真快,我们已经讲完三节课了!站在我个人的角度来看,仅代表我个人的看法,这节课是知识上最连贯的一节课。有了前两节课的基础知识铺垫,这节课讲起来十分轻松自如。当然,我知道如果站在大家的角度来看,情况也许没这么乐观——继承还好,一到多态、覆盖、隐藏、接口、抽象类、virtual方法这些地方,就会感觉天旋地转。

   请大家不要紧张。几乎每位学习编程的同学在这里都会经历一段时间因它们而引起的迷惑。几乎没有别的办法,唯有多用多想,期待一瞬间感悟的到来。

    今天来的同学不如上回多。可能是因为时间放在了周日而不是周六(有同学提到了这一点)。这节课是C#基础知识的“胸腰”阶段,很重要。

照例,先给自己讲的东西打个分:

因为需要把内容扩展开来、细致讲述,所以今天的课程对原来的大纲进行了很多扩充。

  • 名称空间与类:4.5,没什么可说,大家在这点上掌握的都非常不错。
  • 类成员修饰:上节课已经讲过。
  • 类继承,接口实现(今天新加内容):4,大家对接口这个概念还不太敏感。OK,多想一想“闭门造车”这个成语的来历,自然就明白了。
  • 抽象类(今天新加内容):4,平时大家见到的类多是实现好的、可以用于实例化的类,对于这种起“承上启下作用的、不能实例化的、多用于多态编程”的类,感觉很迷惑。可以理解:)
  • (接口的)纯虚方法、abstract方法、virtual方法、override方法及隐藏:4.5/3,4.5是我打给讲课的,也就是说,我感觉我想讲的东西都交待明白、交待清楚了;3是站在大家的角度上想的——我知道大家目前还是云里雾里呢(个别同学课上已经露出会心一笑)。
  • 多态:4.5/4。大家对多态的理解已经比较深入了。请大家仔细回忆一下多态在抛出异常时、简化代码时、foreach循环时的优势。
  • 属性:4.5。内容比较简单,大家的理解能力也足够强。

下节课要讲使用委托来实现事件了,临下课,我请大家记了两句话:

  1. 委托是函数指针的“升级版”。请大家先搞明白什么是函数指针、如何使用函数指针做函数的间接调用。这些是C/C++语言内容。
  2. 委托是事件的“物理基础”。请大家垂阅我的《深入浅出话委托/事件》

下面是回复大家的问题:

  1. 这次课调查问卷的形式不错,但内容无法跟上变化,造成有几项大家无法评分,而很多新加内容我无法收集大家的评价。计划跟不上变化的内容是常有的,下回请Ida在内容项上留出空位,下课前我补填几项,然后复印一下吧。
  2. 有个小建议:对于内容的评价,不要使用“满意”、“一般”、“不满意”,建议使用“完全理解”、“理解”、“不太明白”、“完全不明白”等。
  3. Q:培训前确定好培训地点及培训所需要的工具(多人)
    A:大家很辛苦,心情可以理解;Ida也很忙,难免百密一疏。大家互相理解吧。组织方面的事情,还请Ida多费心。
  4. Q:想学习嵌入式Linux
    A:在CSDN里搜一下,有很多高人的指导文章哦:D
  5. Q:还是周六比较好(多人)
    A:我也赞同。如果再遇周六有重要事情,我将考虑顺延一周。
  6. Q:通知邮件最好能在周五中午前发出
    A:我知道有同事昨天白跑了,估计今天也有去了烽火没找到组织的。组织方面的事情,还请Ida多费心。
  7. Q:修饰符的顺序如何排列?
    A:顺序是自由的。 当然,也有大多数程序员都喜欢的准“标准”排列顺序,请查看定义文档中的语法生成式。
  8. Q:希望看到实际工作中的代码
    A:你的心情我非常理解(希望看到真实的工作代码是什么样子),但实际工作中的代码根本没我们讲的这么清晰,一般是多种技术混在一起用的、上下文语境也非常复杂、一个完整的功能表达动辄数十行甚至上百行。下节课我给大家show几个www.codeproject.com里的例子吧:)
  9. Q:如果可以,可以讲一些针对Int'l Test的知识吗?
    A:对于Int‘l Test,我是个彻底的外行。也许Ida他们已经有这方面的培训计划了吧……
  10. Q:课上的例子能不能保存下来放在公司的Training资料库里,以便复习?
    A:我的Blog里有相应完整的各个例子。欢迎垂阅。
  11. Q:请推荐一些自行练习时使用的书目
    A:下次我会带刻录好的光盘给大家,今天中介来查家俱了,忙不过来了:p
  12. Q:增加互动
    A:一定一定。不过,先得保证大家安安静静听懂哦~~~等大家熟练了之后,我们一起讨论程序。现在大家还糊涂着呢,互动起来我怕会成一锅粥了:p
  13. Q:能否推荐一些大型软件设计、面向对象设计方面的书,实际开发方面(MIS开发)
    A:在下Blog中有一篇《用C#搞对象》,里面推荐了一本,很受用。如果想开发大型软件,建议阅读UML和Design Pattern相关书籍,框架设计比代码实现更重要。一个软件,你一开始就给它设计了一副恐龙的骨架,开发到最后,再怎么测试、再怎么修改,它也变不成圣斗士星矢。
  14. Q:C#基础语法还不很清楚,比如:ArrayList
    A:你好!这不是C#基础语法,而是.NET Framework类库当中的类。对这些类的学习依靠长时间的积累——今天你不就已经积累了一个很重要的类吗:)学习它们的方法是深入挖掘它们的大本营——MSDN Library。
  15. Q:以程序举例时速度略微有点快
    A:我也想放慢点儿仔细多讲几遍,课时不够呀~~~我尽量申请吧。
  16. Q:今天听完还有有些“晕”
    A:大家已经很不错了。我自学的时候,就这点儿内容,晕了整整半年。
  17. Q:增加每节课的知识量
    A:这位同学一定是学习能力相当强的同学。我也想一节课就把知道的所有内容都讲给大家,但站在讲台上看到台下70%的同学对某个知识点都流露出迷惑的眼神时,那就必需仔细再来一遍了。向这位同学说一声抱歉,希望你能理解。
  18. Q:希望减少课件中的错误
    A:呵呵,我一直对Interface那儿的那个疏忽耿耿于怀呢。因为Interface是临时想起来插几句,那时候满脑子想的还都是abstract和virtual呢,所以把纯虚方法的实现也误认为需要加override了。抱歉!我估计这个错我这辈子是最后一次犯了。至于我那会儿说,AdMathTeacher不应该派生自MathTeacher而应该派生自MajorTeacher,“如果是现实生产中那将是个错误”——并不是说我搞错了——这些类都是信手拈来的,今天用Teacher类来讲,是因为我讲鸡狗鸭子讲烦了:p
  19. Q:多讲些关于接口方面的内容
    A:接口就是一套类的“行为规范”,一般是架构师设计出来用于约束程序员以保障团队顺利分工协作的手段,它处于抽象的最顶层,可以多重继承,成员都是纯虚的——也就这些了,呵呵。
  20. Q:下回把Beyondsoft烽火的权限搞定
    A:最好把央行金库的权限也搞定,en

谢谢大家:D