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

基本クラスでコンストラクターを指定し、以下のように基本クラスのコンストラクターから継承する子クラスでコンストラクターを作成します

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

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

ベースキーワードの詳細を読む

于 2013-11-02T10:02:21.947 に答える
0

以下の例では、子は実際には 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 に答える