[問題] 用Where來限制泛型的問題...

看板C_Sharp (C#)作者 (jasper)時間9年前 (2015/09/08 18:31), 9年前編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
如題,小弟想要用類似以下做法來做一個工具: public void StartDelay<T>(Action _action,T _count)where T:int,float { if(_count.GetType() == typeof(float)) { //do something } else if(_count.GetType() == typeof(int)) { //do something } } 但是他會跳一個錯誤,似乎是int和float在where的約束上面會有衝突, 雖然我可以在函式內加一些防呆防止使用者用錯,但感覺不是很好=""= 希望能由compiler直接警告使用者,而不是執行到一半才跳錯 想請問有沒有辦法使用where來完成,或是類似的方式? 非常感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.2.10 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1441708310.A.6E5.html

09/08 18:37, , 1F
你應該要提供 void StartDelay(Action, int)
09/08 18:37, 1F

09/08 18:38, , 2F
void StartDelay(Action, float)
09/08 18:38, 2F
對齁@@ 腦袋真的沒轉過來 非常感謝! ※ 編輯: jamod (36.233.20.131), 09/08/2015 20:18:24
文章代碼(AID): #1LxhaMRb (C_Sharp)
文章代碼(AID): #1LxhaMRb (C_Sharp)