李建忠


C#/.NET, C++/CLI 培训/咨询
随笔 - 13, 评论 - 266, 引用 - 26

导航

关于

标签

每月存档

最新留言

广告

 

Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持。

唯一的遗憾是时间安排太紧,一些item匆匆过了,而没有深入的展开,还有一些item由于考虑到讲座的覆盖度,没有列出。这些主题将会在我将来的书稿中得到完整的体现。

我会把Effective C++/CLI努力写好,也希望大家能贡献自己的智慧,一起来完善这本书。

打印 | 张贴于 2005-01-23 22:12:00 | Tag:程序人生

留言反馈

#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
李老师是南邮五系毕业的吧?
2006-01-07 17:26:00 | [匿名:kevin]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
C++/CLI现在就写Effective ?

Scott Meyers 写他的名作时,C++已经出来很长时间了,有大量的实践,才可以谈effective的。 还是等C++/CLI有了较多实际应用,再写这个题目吧,没有实际项目的经验,没有大量代码的积累,这个是不现实的,写不出经典。

你还是写一本prime系列的比较好
2005-11-17 09:30:00 | [匿名:sidle]
#re:Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
^_~,pretty good!csharpsseeoo
2005-05-18 20:41:00 | [匿名:高斯计]
#re:Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
^_~
2005-04-16 17:09:00 | [匿名:螺杆泵]
#re:Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
^_^,Pretty Good!
2005-04-10 20:28:00 | [匿名:离心机]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
过年的时候,看了<.net框架程序设计(修订版) > ,看着看着,就想到过去写代码的时候的疑惑,有种豁然开朗的感觉.在工作间隙,继续看着.
2005-03-03 09:54:00 | [匿名:suisui]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
To suisui,
抱歉,由于俱乐部将独立运作,网站正在改版,不宜再放在祝成科技的主页上,活动记录、照片和ppt将于近日放在新的俱乐部网站上,希望大家理解。今年俱乐部会开展更多的活动,感谢大家支持。
2005-02-23 12:07:00 | [匿名:李建忠]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
等了一个星期,又到祝成的网站看了一下,还是没有看到PPT.上次去听了讲座,还想看看ppt,消化消化.过年的时候,打算好好看<.net框架程序设计(修订版) >
2005-01-31 10:59:00 | [匿名:suisui]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
To 汪晟杰,
这是整个CLR设计的缺陷(也许CLR的设计人员并不认为这是一个缺陷),所有.NET语言都会有这个问题。目前来说只能靠程序员自己来避免。
2005-01-25 20:21:00 | [匿名:李建忠]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
汪晟杰 ,
其实只要认真听了李老师的讲座就会对这个问题非常清楚。
老师已经多次指出,在c++中这个问题是可以避免的,在c++中基类的构造函数如果调用虚函数那么只会调用基类定义的,而不会调用子类重载的。
你可以看成是c#的缺陷,也可以当作是编程的一种技巧。
2005-01-25 13:52:00 | [匿名:H]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
非常感谢孙老师的指出,那我想问,这是C#本身的缺陷还是我们程序员在编程思路上必须要避免地一个环节呢?
2005-01-25 13:37:00 | [匿名:汪晟杰]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
你好,汪晟杰,

可能我在会场上的表达太快,这一条item让你产生了误解。下面我详细解释一下。这一item是这样写的:


# 避免在实例构造器中调用虚方法——无论是直接还是间接(虚方法先于构造器调用)


这里出问题的条件是“在实例构造器中调用虚方法”,如果在其他地方调用虚方法,则不存在任何问题。

看下面的代码:

using System;

class Base
{
public Base()
{
Console.Write("Base construct Load!\n");
this.AA(); //注意,这是我们需要避免的动作
}

public virtual void AA()
{
Console.Write("Base AA Load!\n");
}


}

class BaseChild:Base
{
public BaseChild()
{
Console.Write("BaseChild construct Load!\n");
}

public override void AA()
{

Console.Write("Base BaseChild AA Load!\n");

}

}

class Class1
{

static void Main(string[] args)
{
BaseChild bc=new BaseChild();

}
}

Base construct Load!
Base BaseChild AA Load!
BaseChild construct Load!

在BaseChild还没有构造出来的时候,BaseChild中重写的AA方法已经执行了——这就是问题所在“当一个object还没有完成初始化,就让它去行使行为是没有道理的”。
2005-01-25 12:01:00 | [匿名:李建忠]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
质疑“虚方法先于构造函数”。
class Base
{
public Base()
{
Console.Write("Base construct Load!\n");
}

public virtual void AA()
{
Console.Write("Base AA Load!\n");
}


}

class BaseChild:Base
{
public BaseChild()
{
Console.Write("BaseChild construct Load!\n");
}

public override void AA()
{
base.AA ();
Console.Write("Base BaseChild AA Load!\n");

}

}
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
///
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
BaseChild bc=new BaseChild();
bc.AA();
Console.Read();
}
}

事实上,顺序是:
Base construct Load!
BaseChild construct Load!
Base AA Load!
Base BaseChild AA Load!

2005-01-25 11:32:00 | [匿名:汪晟杰]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
真可惜不能来参加这么精彩的活动,不过CLI对我来说实在是一个遥远的话题了,呵呵。希望Effective C++/CLI早日成书。
2005-01-24 21:38:00 | [匿名:Zheng Tong]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
期待C++/CLI!
2005-01-24 11:39:00 | [匿名:STEP]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
对了,我很有意向,在DVBBS,经典论坛,51JS,等论坛同时展开这个effective准则的讨论。
不知道李建忠老师有没有这个意向。
至于各论坛的联系,就由我来操办好了。

盼回复。
2005-01-24 10:51:00 | [匿名:洛林(Renaski)]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
内容真的很不错,
想想有点对不起我们的客户,以前在做项目时并没有刻意考虑这些effective的准则。
不过以后就一定会注意了。
另外,那个金黄色的杯子很可爱,呵呵。
希望尽早放出ppt.
2005-01-24 10:28:00 | [匿名:Hobbes]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
如果写 Scott Meyers 想写一本 Effective C++/CLI 怎么办?
2005-01-24 09:33:00 | [匿名:无人能懂]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
时间的确太紧了。
听得意犹未尽。
2005-01-24 09:30:00 | [匿名:lichdr]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
Effective C++/CLI??
2005-01-24 09:27:00 | [匿名:无人能懂]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
很精彩的Topic,谢谢李老师

然则后面的交流,由于要赶回苏州,所以没办法继续了...

希望以后有机会多参与这样的线下交流
2005-01-24 09:24:00 | [匿名:Lu Feng]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
是的,快快放出ppt
2005-01-24 08:56:00 | [匿名:dali]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
昨天还要感谢的是MMKK和我佛山人,我一回家就拖着他们忙着不停,问他们一些东西,真的是做了我的朋友会好倒霉啊。
呵呵,谢谢大伙对我的帮助
2005-01-24 08:43:00 | [匿名:洛林(Renaski)]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
确实不错。高手太多了。
希望PPT文档尽快提供下载。
我这里还有一些EFFECTIVE的经验还没来的急分享。
以后能多多举办这些活动。

我也会尽快完善我的架构理念。同时谢谢各位的帮助:)
2005-01-24 08:41:00 | [匿名:洛林(Renaski)]
#re: Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持 编辑
今天终于见到李老师了,和想象中的完全不一样`好年轻啊~呵呵`

希望Effective C# 一书早日出版
2005-01-23 22:56:00 | [匿名:ArcJeremy]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0