我們可以看到,InitialSampleDemo繼承自CemoBase類,而DemoBase又繼承自ZedGraphDemo這個接口。 ZedGraphDemo接口定義了String Description、String Title、ZedGraph. ZedGraphControl ZedGraphControl 和 System.Collection.ICollection Types這四個屬性。DemoBase除了實現這四個屬性 外,還添加了PaneBase Pane和MasterPane MasterPane這兩個屬性,此外DemoBase還實現了多載構造函數 。關於各個類的具體含義和用法,我會在以後的篇幅中陸續介紹。這裡只是給大家一個整體的大致結構。
下面進行對代碼的分析,由於這是第一個例子,所有我會講得比較細,以後的例子就不會了。
我們可以看到程序首先
public InitialSampleDemo() : base( "Code Project Initial Sample" , "Initial Sample", DemoType.Tutorial )
初始化基類的構造函數。基類重載了四個構造函數
public DemoBase( string description, string title, DemoType type )
{
ArrayList types = new ArrayList();
types.Add( type );
Init( description, title, types );
}
public DemoBase( string description, string title, DemoType type, DemoType type2 )
{
ArrayList types = new ArrayList();
types.Add( type );
types.Add( type2 );
Init( description, title, types );
}
public DemoBase( string description, string title, ICollection types )
{
Init( description, title, types );
}
private void Init( string description, string title, ICollection types )
{
this.description = description;
this.title = title;
this.types = types;
control = new ZedGraphControl();
}