[問題] 泛型類別如何向下轉型?
class MyList<T>{}
interface IBase{}
interface ISub:IBase{}
如上,ISub 繼承 IBase ,令:
var a = new MyList<ISub>();
var b = (MyList<IBase>)a;
這時b強制轉型會造成錯誤。
我知道因為泛型會在執行階段
產生特殊版本來跑不同型別輸入,
因該是因為這原因讓編譯器認定
a,b 是兩種不同的型別,
但若有強制轉換需求該怎麼做?
-----
Sent from JPTT on my HTC_U-1u.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.216.59
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1507097286.A.66F.html
→
10/04 14:23,
7年前
, 1F
10/04 14:23, 1F
→
10/04 14:23,
7年前
, 2F
10/04 14:23, 2F
→
10/04 14:26,
7年前
, 3F
10/04 14:26, 3F
→
10/04 14:26,
7年前
, 4F
10/04 14:26, 4F
→
10/04 14:27,
7年前
, 5F
10/04 14:27, 5F
我想把
MyList<ISub> MyList<IBase>
放入 Dictionary<int, T > 去統一管理,
但 T 不論是宣告成什麼,
都無法儲存。
※ 編輯: noodleT (111.255.216.59), 10/04/2017 14:56:11
→
10/04 15:32,
7年前
, 6F
10/04 15:32, 6F
→
10/04 15:33,
7年前
, 7F
10/04 15:33, 7F
→
10/04 15:34,
7年前
, 8F
10/04 15:34, 8F
→
10/04 15:36,
7年前
, 9F
10/04 15:36, 9F
→
10/04 15:37,
7年前
, 10F
10/04 15:37, 10F
推
10/05 07:54,
7年前
, 11F
10/05 07:54, 11F
推
10/05 07:57,
7年前
, 12F
10/05 07:57, 12F
→
10/05 07:57,
7年前
, 13F
10/05 07:57, 13F
推
10/07 15:46,
7年前
, 14F
10/07 15:46, 14F
→
10/07 15:48,
7年前
, 15F
10/07 15:48, 15F
→
10/07 15:48,
7年前
, 16F
10/07 15:48, 16F
→
10/12 08:10,
7年前
, 17F
10/12 08:10, 17F
→
10/12 08:10,
7年前
, 18F
10/12 08:10, 18F
→
10/12 23:25,
7年前
, 19F
10/12 23:25, 19F
→
10/12 23:25,
7年前
, 20F
10/12 23:25, 20F
→
10/12 23:37,
7年前
, 21F
10/12 23:37, 21F
→
10/12 23:37,
7年前
, 22F
10/12 23:37, 22F
→
10/12 23:39,
7年前
, 23F
10/12 23:39, 23F
推
10/17 20:34,
7年前
, 24F
10/17 20:34, 24F
→
10/17 20:35,
7年前
, 25F
10/17 20:35, 25F

推
10/17 20:37,
7年前
, 26F
10/17 20:37, 26F

C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章