我的情況是,我有一個控制被實現來處理兩種不同的類型。所以在我有if(controlType == "Type1") ... else...
的一些方法中,我想用基類將它分成兩個不同的控件來處理這兩個控件的通用操作。兩個控件都會有相同的標記,所以我想處理基類中的控件事件,但設計者似乎把這個問題搞砸了。我幾乎覺得像一個通用的.ascx將是完美的,但我不知道從哪裏開始。我可以創建一個抽象基類UserControl,以便派生.ascx必須實現某些控件?
0
A
回答
1
在過去,我嘗試了各種各樣的繼承和用戶控件,包括一個從另一個ascx繼承的ascx,並且後來決定不值得麻煩,因爲它的維護往往是一點點頭痛。
有兩個從一個公共基類繼承的ascx控件可行,但我也發現試圖處理基類中的事件變得困難。最後,我只是從事件中調用基類中的方法。你必須處理兩個控件中的事件,但至少從現在起兩年後人們可以遵循這些代碼。
通用ASCX將是真棒,是可能的:
不過雖然這是一個聰明的解決辦法,因爲EDI不直接支持它,我懷疑它最終會增加維護問題。
我知道這可能不是你想要的答案,但是具有醜陋的if(controlType == "Type1")
代碼雖然感覺不雅,但最終可能最容易維護,只是因爲Visual Studio本質上不支持用戶控件的繼承。
祝你好運,如果你找到一個優雅的解決方案,請讓我知道!
+0
感謝頂部鏈接幾乎是我整天浪費的東西 – Mike 2012-03-08 22:16:08
相關問題
- 1. Visual Studio:設計一個派生自抽象基類的UserControl類
- 2. 設計我的程序,以避免必須從基礎派生到派生類
- 3. 我可以從另一個抽象派生類中的基類調用抽象方法嗎?
- 4. 使用抽象類來實現派生
- 5. 實現派生類接口方法的抽象基類
- 6. 類'從MessageListener派生的匿名類'必須聲明爲抽象或實現抽象方法
- 7. 類 '從AdListener的派生匿名類' 必須被聲明爲抽象或實現抽象方法 'onLoggingImpressionMethod(AD)'
- 8. 類必須聲明爲抽象或實現抽象方法toArray
- 9. 類必須聲明爲抽象或實現抽象方法?
- 10. 可以派生類腐敗的基類的實現
- 11. 在派生類中實現一個抽象方法靜態
- 12. 抽象類可以在派生類中被覆蓋,而不需要在基類中實現
- 13. 如何在從QObject派生的python中創建抽象基類
- 14. WPF基類可以包含派生類的控件嗎?
- 15. C#實現抽象類的方法:我必須做出一個投?
- 16. 重載子圖,以便派生圖對象可以創建子圖(networkx)
- 17. 在C++中創建派生抽象類的實例
- 18. 從非抽象類派生抽象類
- 19. 抽象基類實現
- 20. 創建一個接口與基類,而派生類包含自己的實現
- 21. 必須被聲明爲抽象或實現抽象方法
- 22. 有一些實現的C++抽象類
- 23. 爲什麼我的派生類是一個抽象類? C++
- 24. 類必須聲明爲抽象或實現onItemSelected在OnItemSelectedListener中的抽象方法
- 25. RxAndroid:類必須聲明爲抽象或實現抽象方法的錯誤
- 26. 我可以在派生類中創建一個公共成員變量private嗎?
- 27. Email類型必須實現繼承的抽象方法Comparable.compareTo(Object)
- 28. 類必須聲明爲抽象或實現convertToLegacyCheckingEqualizer
- 29. 如何創建TabPage的子類,以便像UserControl一樣編輯?
- 30. C# - 如何指定一個枚舉必須在抽象類中實現?
設計師如何解決問題? – 2012-03-08 15:31:09