1

我想要以下内容,是否可以在 C# 中

public class BaseClass
{
       public string Name {get;set;}
       public DateTime Login {get;set;}
}

public class ChildA : BaseClass
{
       public string SchoolName{get; set;}
       public string ClassName{get; set;}
}

public class childB : BaseClass
{
       public string StreetAdrees{get; set;}
}

现在我希望如果我创建任何子类 Name="John" 和 Login "2013-12-12" 的实例,或者从数据库中已经设置了它的刺激性来为每个类设置这些属性

就这样

ChildA obj=new ChildA();

obj.Name and obj.Login already have Data
4

2 回答 2

3

Specify constructor in base class, then create constructors in child classes which inherit from base classes constuctor like below

public class ChildA : BaseClass
{
       public ChildA():base(){}
       public string SchoolName{get; set;}
       public string ClassName{get; set;}
}

public class BaseClass
{
      public BaseClass()
      {
          //set Data
           .....
      }
   ....
}

read more about base keyword

于 2013-11-02T10:02:21.947 回答
0

在下面的示例中,children 实际上会指向同一个 base 实例

该示例使用缓存,但它可以是其他任何东西(会话、应用程序状态等)。

public class BaseClass
{
    private string _name;
    private DateTime _login;

    public string Name
    {
        get
        {
            return Instance._name;
        }
        set
        {
            _name = value;
        }
    }
    public DateTime Login 
    {
        get
        {
            return Instance._login;
        }
        set
        {
            _login = value;
        }
    }

    public static BaseClass Instance
    {
        get 
        {
            // check if null, return a new instance  if null etc...
            return HttpContext.Current.Cache["BaseClassInstance"] as BaseClass;                
        }
        set
        {
            HttpContext.Current.Cache.Insert("BaseClassInstance", value);
        }
    }
}

public class ChildA : BaseClass
{
    public string SchoolName { get; set; }
    public string ClassName { get; set; }
}

public class childB : BaseClass
{
    public string StreetAdrees { get; set; }
}

测试它:

BaseClass.Instance = new BaseClass() { Login = DateTime.Now, Name = "Test" };

ChildA ch = new ChildA();

ChildA ch2 = new ChildA();

childB chb = new childB();

Response.Write(ch.Login.Millisecond);
Response.Write("<BR/>");
Response.Write(chb.Login.Millisecond);

结果:

906

906

于 2013-11-02T10:32:02.933 回答