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