尝试继承三个基类,无法实现

11 浏览
0 Comments

尝试继承三个基类,无法实现

我对我的User类的设计有一些问题,但是它们足够不同,我认为它们应该是独立的问题。

所以,第一个问题与基类的继承有关。我当前继承了两个类,ProfileBaseISessionMgrEntry,如下所示:

public class User : ProfileBase, ISessionMgrEntry

但是,我还想继承第三个类,MembershipUser,像这样:

public class User : ProfileBase, MembershipUser, ISessionMgrEntry

然而,编译器不允许我这样做。为什么?我该如何解决这个问题?

谢谢。

PS - ASP.NET 3.5 / C#

编辑

嗨。我认为下面的解决方案可能适用于我想实现的目标。它看起来非常简单和直接。我这样做是为了创建一个完整/组合的User对象。有人看到可能会导致问题的原因吗?在我进行这个操作时,有一个问题是重叠的属性。例如,MembershipUserProfileBase都有"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; }
    } 
    ....
}

0