[问题] 继承属性疑问

楼主: justlike5566 (5566天下无敌)   2018-03-15 22:08:33
先附上code
class TestA
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
class TestB : TestA
{
public string CName { get; set; }
}
class Program
{
static void Main(string[] args)
{
TestA ta = getTestA();
TestB tb = getTestA() as TestB;
var temp = tb;
}
private static TestA getTestA()
{
return new TestA()
{
ID = 1,
Name = "AA",
Age = 18
};
}
}
目的是让TestB继承的属性直接给值而不用在B那边一个一个写入
爬了一天文没找到相关的资讯及解法
求有没有相类似的关键字让小弟可以去查
作者: t64141 (榕树)   2018-03-15 22:28:00
TestB包含一个属性TestA, newTestB(){ testA = getTestA();}
作者: pzyc79   2018-03-15 22:28:00
看不懂你问题是什么
作者: t64141 (榕树)   2018-03-15 22:29:00
不过还是要看你这两个物件在逻辑上究竟是否适合用包含取代继承
作者: pzyc79   2018-03-15 22:33:00
把return new TestA()改成return new TestB()可能是你要的
作者: Litfal (Litfal)   2018-03-16 08:04:00
你反了,父类不能直接转子类阿,动物又不一定是狗
作者: s4300026 (s4300026)   2018-03-16 08:37:00
所以应该写个给值方法,new B,给父类别值请参考 #1QgW7iUS (C_and_CPP)程式码第222行,你可以new子类别完后,return前写你想return的父类别值
作者: snowlike (.zZ)   2018-03-16 10:40:00
泛型 static T Get<T>() where T : TestA, new() { ..
作者: landlord (91)   2018-03-17 00:00:00
AutoMapper

Links booklink

Contact Us: admin [ a t ] ucptt.com