亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

泛型約束問題

泛型約束問題

慕田峪4524236 2018-11-07 05:02:05
能不能將類型參數約束為指定類型,而不是約束為實現了某個接口或繼承某個類型。比如下面一個類:我要求 Tc 的類型 必須是Ta 或者是Tb。(下面這樣定義好象不對。意思好象是Tc 要繼承或實現 Ta 和 Tb。)public class MyClass<Ta, Tb> {  public void DoSomeThing<Tc>()      where Tc : Ta, Tb      {   }}                  
查看完整描述

2 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

泛型接口沒有或只有且,如果是或的話,你在DoSomeThing方法是到底怎么判斷Tc的對象是Ta還是Tb呢,既然不能判斷又怎么去調用相應的方法呢……另外你這個即沒有返回值也沒有參數的方法用泛型的意義在哪里呢……

查看完整回答
反對 回復 2018-11-12
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

那當然不可能啊,除非Ta、Tb從一個接口或基類派生。

不然您想想,如果不定義基類,Ta有3個方法(A1,A2,A3),而Tb有3個不同的方法(B1,B2,B3),那在未運行前,你怎么才能讓編譯器識別到啊

所以接口和基類起碼可以保證子類有此方法,在運行時才能動態的調用


查看完整回答
反對 回復 2018-11-12
  • 2 回答
  • 0 關注
  • 320 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號