Pet*_*ter 28 c# inheritance multiple-inheritance
我有几个与User课堂设计有关的问题,但它们不同,我认为它们应该是独立的问题.
所以,第一个与基类的继承有关.我目前继承两个类,ProfileBase并ISessionMgrEntry为这样的:
public class User : ProfileBase, ISessionMgrEntry
Run Code Online (Sandbox Code Playgroud)
但是,我还想继承第三个类MembershipUser,如下所示:
public class User : ProfileBase, MembershipUser, ISessionMgrEntry
Run Code Online (Sandbox Code Playgroud)
但是,编译器不会让我这样做.为什么?而且,我该如何解决这个问题呢?
谢谢.
PS - ASP.NET 3.5/C#
编辑
你好.我认为以下解决方案可能适用于我想要实现的目标.看起来非常简单直接.我这样做,所以我可以创建一个完整/组合的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; }
}
....
}
Run Code Online (Sandbox Code Playgroud)
在c#中,您可以从一个类继承,但可以根据需要实现任意数量的接口.在你的情况下ProfileBase,MembershipUser是类,ISessionMgrEntry是一个接口.
| 归档时间: |
|
| 查看次数: |
65774 次 |
| 最近记录: |