色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

.NET委托:一個C#睡前故事

  英文版原作者:Chris Sells(www.sellsbrothers.com)

  翻譯:袁曉輝(www.farproc.com http://blog.csdn.NET/uoyevoli)

  原文地址: http://dev.csdn.NET/article/82/82644.shtm

  緊耦合

  從前,在南方一塊奇異的土地上,有個工人名叫彼得,他非常勤奮,對他的老板總是百依百順。但是他的老板是個吝嗇的人,從不信任別人,堅決要求隨時知道彼得的工作進度,以防止他偷懶。但是彼得又不想讓老板呆在他的辦公室里站在背后盯著他,于是就對老板做出承諾:無論何時,只要我的工作取得了一點進展我都會及時讓你知道。彼得通過周期性地使用"帶類型的引用"(原文為:"typed reference" 也就是delegate??)"回調"他的老板來實現他的承諾,如下:

class Worker {
public void Advise(Boss boss) { _boss = boss; }
public void DoWork() {
Console.WriteLine(
"工作: 工作開始");
if( _boss != null ) _boss.WorkStarted();
Console.WriteLine(
"工作: 工作進行中");
if( _boss != null ) _boss.WorkProgressing();
Console.WriteLine(
""工作: 工作完成"");
if( _boss != null ) {
int grade = _boss.WorkCompleted();
Console.WriteLine(
"工人的工作得分=" + grade);
}
}
private Boss _boss;
}
class Boss {
public void WorkStarted() { /* 老板不關心。 */ }
public void WorkProgressing() { /*老板不關心。 */ }
public int WorkCompleted() {
Console.WriteLine(
"時間差不多!");
return 2; /* 總分為10 */
}
}
class Universe {
static void Main() {
Worker peter
= new Worker();
Boss boss
= new Boss();
peter.Advise(boss);
peter.DoWork();
Console.WriteLine(
"Main: 工人工作完成");
Console.ReadLine();
}
}

NET技術.NET委托:一個C#睡前故事,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 绥滨县| 四会市| 鲜城| 太康县| 瓦房店市| 荣成市| 资阳市| 郯城县| 界首市| 突泉县| 扶沟县| 太保市| 民勤县| 荣成市| 长寿区| 灯塔市| 栖霞市| 陆川县| 河间市| 南靖县| 渝中区| 湾仔区| 新营市| 延庆县| 灵武市| 夹江县| 惠安县| 乌拉特中旗| 宣化县| 于田县| 开封市| 紫云| 长岛县| 黄大仙区| 吴江市| 昭苏县| 宁强县| 新晃| 昌宁县| 同德县| 神木县|