作者justlike5566 (5566天下無敵)
看板C_Sharp
標題[問題] 繼承屬性疑問
時間Thu Mar 15 22:08:33 2018
先附上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那邊一個一個寫入
爬了一天文沒找到相關的資訊及解法
求有沒有相類似的關鍵字讓小弟可以去查
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.18.78
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1521122915.A.818.html
→ t64141: TestB包含一個屬性TestA, newTestB(){ testA = getTestA() 03/15 22:28
→ t64141: ;} 03/15 22:28
→ pzyc79: 看不懂你問題是什麼 03/15 22:28
→ t64141: 不過還是要看你這兩個物件在邏輯上究竟是否適合用包含取代 03/15 22:29
→ t64141: 繼承 03/15 22:29
→ pzyc79: 把return new TestA()改成return new TestB()可能是你要的 03/15 22:33
→ Litfal: 你反了,父類不能直接轉子類阿,動物又不一定是狗 03/16 08:04
推 s4300026: 所以應該寫個給值方法,new B,給父類別值 03/16 08:37
推 s4300026: 程式碼第222行,你可以new子類別完後,return前寫你想re 03/16 08:42
→ s4300026: turn的父類別值 03/16 08:42
推 snowlike: 泛型 static T Get<T>() where T : TestA, new() { .. 03/16 10:40
→ landlord: AutoMapper 03/17 00:00