मेरे पास User
कक्षा के डिज़ाइन से संबंधित कुछ प्रश्न हैं लेकिन वे अलग हैं जो मुझे लगता है कि उन्हें स्वतंत्र होना चाहिए प्रश्न।तीन बेस क्लास प्राप्त करने का प्रयास कर रहे हैं और
तो, पहले आधार वर्ग की विरासत से संबंधित है। मैं वर्तमान में जैसे दो वर्गों, ProfileBase
और ISessionMgrEntry
इनहेरिट हूँ:
public class User : ProfileBase, ISessionMgrEntry
लेकिन, मैं भी एक तृतीय श्रेणी, MembershipUser
, इस तरह के वारिस हैं:
public class User : ProfileBase, MembershipUser, ISessionMgrEntry
हालांकि, संकलक जीता ' मुझे ऐसा करने दो। क्यूं कर? और, मैं इसके आसपास कैसे प्राप्त करूं?
धन्यवाद।
पुनश्च - ASP.NET 3.5/सी #
संपादित
हाय। मुझे लगता है कि नीचे दिया गया समाधान जो मैं कोशिश करने की कोशिश कर रहा हूं उसके लिए काम कर सकता है। यह बहुत सरल और सीधे आगे लगता है। मैं ऐसा कर रहा हूं इसलिए मैं एक पूर्ण/संयुक्त User
ऑब्जेक्ट बना सकता हूं। क्या किसी को कोई कारण दिखता है कि इससे समस्याएं क्यों हो सकती हैं? जब मैं डिंग कर रहा था, तब यह एक ओवरलैपिंग गुण है। उदाहरण के लिए, MembershipUser
और ProfileBase
दोनों "UserName
" साझा करें। क्या मुझे सिर्फ एक या दूसरे को चुना जाना चाहिए या यह एक डिज़ाइन दोष होगा? सुझाव? एक बार फिर धन्यवाद।
public class User
{
#region Constructors
private readonly MembershipUser _MembershipUser;
private readonly ProfileBase _ProfileBase;
#endregion
public User()
{
_MembershipUser = new MembershipUser();
_ProfileBase = new ProfileBase();
}
public string Comment
{
get { return _MembershipUser.Comment as string; }
set { _MembershipUser.Comment = value; }
}
public bool IsAnonymous
{
get { return _ProfileBase.IsAnonymous as bool; }
}
....
}
क्यों आप प्रोप पर 'as' करते हैं? – ChaosPandion
आप सही हैं, मैंने सोचा कि देखा गया। मैं इस सम्मेलन का पालन कर रहा था लेकिन महसूस किया कि यह एक अलग मामला है: [सेटिंग्सअलोवनाम (झूठा), कस्टमप्रोवाइडरडाटा ("आईपीएड्रेस; स्ट्रिंग")] सार्वजनिक स्ट्रिंग आईपीएड्रेस {स्ट्रिंग के रूप में {वापसी आधार ["आईपीएड्रेस"] प्राप्त करें; } सेट {आधार ["IPAddress"] = मान; }} –