[問題] 請問如何將類別作為引數傳遞?
各位學長好
最近有個想法但做不出來
大概就像是這樣:
https://dotnetfiddle.net/GUu7pe
Toyota Mazda Ford
這三個不同名稱的類別中
都有一個名為Car的方法
在類別Test中
有一個SetPrice的方法
我想要將Toyota Mazda Ford這三個類別
作為引數引入SetPrice中
並且不希望動到方法SetPrice的內容
依照例子裏面的寫法
如果要將Toyota變更為Mazda
那麼就得變更引數的型別
SetPrice(new Mazda());//這邊可以變沒關係
void SetPrice(Mazda Maker)//方法不希望變更
{
Maker.Car();
Console.WriteLine(Taiwan.Price);
}
有嘗試自己上網找一些方法
但可能是不得要點,找出來大多不是我要的
請各位學長不吝賜教,感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.108.69 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1576900335.A.6AD.html
→
12/21 12:44,
5年前
, 1F
12/21 12:44, 1F
→
12/21 12:55,
5年前
, 2F
12/21 12:55, 2F
→
12/21 12:56,
5年前
, 3F
12/21 12:56, 3F
我是有想到泛型
大概是學藝不精,無法實現我的想法
如果將程式放在建構子內是可以達成我的需求
但偏偏我想用的方法不只一個
也想過用父類別作為引數的型別
但裡面就是還需要轉型
※ 編輯: berice152233 (1.165.108.69 臺灣), 12/21/2019 13:45:45
→
12/21 14:05,
5年前
, 4F
12/21 14:05, 4F
感謝建議
不過我現在是用其他的方式
但寫得有點複雜
只是想說要再精簡
感覺用委託不會縮短太多
→
12/21 14:54,
5年前
, 5F
12/21 14:54, 5F
→
12/21 14:54,
5年前
, 6F
12/21 14:54, 6F
居然還有泛型的做法
真的是太感動了……!
我回家後立刻就來試試看
我發現我說得不夠精確
其他地方完全是可以改的
只是希望固定之後就不要再動了
※ 編輯: berice152233 (111.83.191.226 臺灣), 12/21/2019 15:04:23
→
12/21 15:10,
5年前
, 7F
12/21 15:10, 7F
當然也很感謝1F
只是很慚愧的我寫不出來
你能寫出來真的是幫了大忙了
※ 編輯: berice152233 (106.105.207.206 臺灣), 12/22/2019 02:00:02
推
12/22 15:54,
5年前
, 8F
12/22 15:54, 8F
是的...
後來我發現繼承抽象類別或虛擬方法也可以做到一樣的事情
我最一開始是使用普通繼承
並在方法加new
用父類別當作引數的型別時
發現還是叫到父類的方法
所以就下意識以為抽象和介面也都是這樣
看書自學時總覺得沒什麼問題
有些觀念真的是要下去寫才能體會
※ 編輯: berice152233 (59.125.120.238 臺灣), 12/23/2019 11:09:11
→
12/25 09:55,
5年前
, 9F
12/25 09:55, 9F
→
12/25 09:59,
5年前
, 10F
12/25 09:59, 10F
→
12/25 10:07,
5年前
, 11F
12/25 10:07, 11F
推
12/26 15:39,
5年前
, 12F
12/26 15:39, 12F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章
10
17