У меня есть несколько вопросов, связанных с дизайном моего класса User
, но
они достаточно разные, и я думаю, что они должны быть независимыми
вопросов.
Итак, первое связано с наследованием базовых классов. Я сейчас
наследуя два класса, ProfileBase
и ISessionMgrEntry
как таковые:
public class User : ProfileBase, ISessionMgrEntry
Но я также хочу наследовать третий класс MembershipUser
, например:
public class User : ProfileBase, MembershipUser, ISessionMgrEntry
Однако компилятор не позволит мне это сделать. Зачем? И, как я могу получить вокруг этого?
Спасибо.
PS - 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; }
}
....
}