作者petrushka (不放过自己)
看板C_Sharp
标题Re: [问题] base的用法?
时间Mon Aug 24 17:19:30 2009
你提到的东西,不过就是初始化过程的串连而已。
以最简单的建构式初始化来说:
public class ClassA
{
protected int numA = 0;
public ClassA( int a )
{
numA = a;
}
}
public class ClassB : ClassA
{
protected int numB = 0;
public ClassB( int a, int b )
: base( a )
{
numB = b;
}
}
ClassB obj = new ClassB( 2, 3 );
ClassB的建构式专注於自己部份numB的初值化,
而把numA的初值化交给ClassA自己去做。
当然,你也可以不透过 :base()的呼叫,
直接在ClassB的建构式中完成numA的初值化。
只是程式设计师都是比较懒惰的,不会做重覆的工作。
Init函式也是相同道理,只是初值化过程的串连。
像这类如骨牌一般串连引发的过程很多地方都可以看到,
比如说滑鼠点击事件,就可以透过这样的方式在视窗或页面上做事件传递。
※ 引述《wa007123456 (大笨羊)》之铭言:
: 为什麽某些类别继承了某类别的话
: 建构式就必须加上 :base(引数) 呢?
: 还有就是
: 像是一个初始化函式
: public override void Initialize(){
: base.Initialize();
: }
: 这样也必须使用base呢?
: 这样作是怎麽一回事?
--
对於已经无法拥有的
唯一能做的是
不要忘记
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.125.251.180