[問題] 繼承屬性疑問

看板C_Sharp (C#)作者 (5566天下無敵)時間7年前 (2018/03/15 22:08), 編輯推噓3(3010)
留言13則, 6人參與, 7年前最新討論串1/1
先附上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

03/15 22:28, 7年前 , 1F
TestB包含一個屬性TestA, newTestB(){ testA = getTestA()
03/15 22:28, 1F

03/15 22:28, 7年前 , 2F
;}
03/15 22:28, 2F

03/15 22:28, 7年前 , 3F
看不懂你問題是什麼
03/15 22:28, 3F

03/15 22:29, 7年前 , 4F
不過還是要看你這兩個物件在邏輯上究竟是否適合用包含取代
03/15 22:29, 4F

03/15 22:29, 7年前 , 5F
繼承
03/15 22:29, 5F

03/15 22:33, 7年前 , 6F
把return new TestA()改成return new TestB()可能是你要的
03/15 22:33, 6F

03/16 08:04, 7年前 , 7F
你反了,父類不能直接轉子類阿,動物又不一定是狗
03/16 08:04, 7F

03/16 08:37, 7年前 , 8F
所以應該寫個給值方法,new B,給父類別值
03/16 08:37, 8F

03/16 08:38, 7年前 , 9F
03/16 08:38, 9F

03/16 08:42, 7年前 , 10F
程式碼第222行,你可以new子類別完後,return前寫你想re
03/16 08:42, 10F

03/16 08:42, 7年前 , 11F
turn的父類別值
03/16 08:42, 11F

03/16 10:40, 7年前 , 12F
泛型 static T Get<T>() where T : TestA, new() { ..
03/16 10:40, 12F

03/17 00:00, 7年前 , 13F
AutoMapper
03/17 00:00, 13F
文章代碼(AID): #1QgdvZWO (C_Sharp)
文章代碼(AID): #1QgdvZWO (C_Sharp)