[問題] Access derived class from base class

看板C_Sharp (C#)作者 (cos)時間10年前 (2015/05/20 08:12), 10年前編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/1
假設今天有 class creature class animal : creature class plants : creature 然後陣列可能存animal 或plants creature[] c; c[0] = new animal(); c[1] = new plants(); 但是我要如何判斷陣列中存的是何種derived class? 有沒有不用dynamic的做法? 謝謝 補問一下,強制cast好嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.159.126 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1432080759.A.B46.html

05/20 09:06, , 1F
c[0].getType()
05/20 09:06, 1F
對耶謝謝:P

05/20 09:09, , 2F
要判斷的話用 C[0] is Animal、c[0] is Plants
05/20 09:09, 2F

05/20 09:19, , 3F
先想想能不能用多型解決
05/20 09:19, 3F
正是因為不是多型才麻煩阿~~ ※ 編輯: ScottOAO (118.167.159.126), 05/20/2015 09:47:15 ※ 編輯: ScottOAO (118.167.159.126), 05/20/2015 09:52:33

05/23 14:21, , 4F
這種情況很常發生的話,我會在creature裡面加屬性就是了
05/23 14:21, 4F
文章代碼(AID): #1LMz5tj6 (C_Sharp)
文章代碼(AID): #1LMz5tj6 (C_Sharp)