बेस कक्षाएं:पेज और उपयोगकर्ता नियंत्रण दोनों के लिए बेस क्लास कैसे बनाएं? के लिए पृष्ठ और UserControl
public class MyWebPage : System.Web.UI.Page { }
public class MyUserControl : System.Web.UI.UserControl { }
हेल्पर उनमें से किसी का भी उपयोग हो सकता है कि:
void SetSessionValue<T>(string key, T value) { Session[key] = value; }
मैं निम्नलिखित की तरह कुछ कैसे प्राप्त कर सकते हैं?
public class WebObject // can't inherit from both Page and UserControl {
protected void SetSessionValue<T>(string key, T value) {
Session[key] = value;
}
}
public class MyWebPage : WebObject { }
public class MyUserControl : WebObject { }
अद्यतन: मैं उम्मीद कर रहा मैं इसे इस तरह से हल कर सकते थे एक पल के लिए भी बड़े उत्साहित थे, लेकिन अफसोस यह संकलन नहीं है।
public class WebObject<T> : T
{
}
public class MyWebPage : WebObject<System.Web.UI.Page>
{
}
आपके पास इस तरह के कई तरीके होंगे, और प्रत्येक विधि में कितना कोड होगा? कोड को डुप्लिकेट क्यों न करें?यह एक लाइनर इस बारे में चिंता करने के लिए छोटा रास्ता लगता है। साथ ही, यदि 'पृष्ठ' और 'UserControl' के पास कोई सामान्य आधार वर्ग है, तो आप उस प्रकार पर एक विस्तार विधि बना सकते हैं। जैसे 'System.Web.UI.Control' या' System.Web.UI.TemplateControl' पर - आप केवल तभी ऐसा कर सकते हैं यदि आपको अपनी कस्टम बेस क्लास से राज्य की आवश्यकता नहीं है। –