我想要以下内容,是否可以在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”并且登录“2013-12-12”或者从数据库中已经设置了令人恼火的为每个类设置这些属性
就像那样
ChildA obj=new ChildA();
obj.Name and obj.Login already have Data
答案 0 :(得分:3)
在基类中指定构造函数,然后在子类中创建构造函数,这些构造函数继承自下面的基类constuctor
public class ChildA : BaseClass
{
public ChildA():base(){}
public string SchoolName{get; set;}
public string ClassName{get; set;}
}
public class BaseClass
{
public BaseClass()
{
//set Data
.....
}
....
}
详细了解base keyword
答案 1 :(得分:0)
在下面的示例中,子节点实际上指向基本
的相同实例该示例使用缓存,但它可以是其他任何内容(会话,应用程序状态等)。
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