若要自行修改EEP中的某個元件,是否有比較推薦的方式?
有兩種方法:
1. 使用partial關鍵字來擴展類。
2. 使用Inheritance繼承來實現一個新類。
下面以WebDateTimePicker詳細說明兩種方法的區別:
----------------------------------------------------------
一、代碼實現,同樣都需要新增一個WebDateTimePickerExtend.cs
1.partial:在新文件中加入
public partial class WebDateTimePicker
{
public void NewFunction(){}
}
同時還要修改原WebDateTimePicker.cs中的WebDateTimePicker聲明為public partial class WebDateTimePicker
2.繼承:在新文件中加入
public class WebDateTimePickerExtend: WebDateTimePicker
{
public void NewFunction(){}
}
----------------------------------------------------------
二、修改和新增屬性和方法
1.partial: 可實現新增方法和屬性,但不能修改原有的方法和屬性。
2.繼承:可實現新增方法和屬性,同時也可以override原有的非私有方法和屬性。
----------------------------------------------------------
三、類的應用
1.partial:由於類只是被擴展,所以新增的部分還是屬於原類的,這樣WebDateTimePicker就有了新的方法和屬性。
2.繼承:只有繼承的子類WebDateTimePickerExtend才有新方法和屬性,所以要用的話,要換一個類。

具體選擇哪種方法要視情況而定:
(1)使用擴展的方法,可以不變動其他調用此類的原代碼,但是不能更改WebDateTimePicker原有的方法。
(2)使用繼承的方法,可以變更WebDateTimePicker原有的方法,但其他調用此類的代碼也要相應的修改。