.NET中的“開放通用類型”究竟是什么?我正在通過Asp.Net MVC課程并了解到,對于一種方法來確定控制器的動作,它必須沒有“開放的通用類型”我對某些泛型有所了解并在某種程度上使用它們,但是:什么是.Net中的開放泛型類型。是否存在封閉的泛型類型?開放泛型類型是一個不經(jīng)常使用的術(shù)語。與它混淆使用的是什么?
3 回答

慕桂英3389331
TA貢獻2036條經(jīng)驗 獲得超8個贊
只是添加:
Dictionary<string, T>
(或更確切地說Dictionary<string,>
)仍然是開放式的。
例:
void Foo<T>(Dictionary<string,T> dic) { ... }

阿晨1998
TA貢獻2037條經(jīng)驗 獲得超6個贊
“開放泛型類型”只是一種尚未指定其類型的泛型類型(例如CargoCrate<T>
)。一旦分配了具體類型(例如CargoCrate<Widget>
),它就變?yōu)椤瓣P(guān)閉” 。
例如,假設(shè)你有這樣的事情:
public class Basket<T> { T[] basketItems;}public class PicnicBlanket<T> { Basket<T> picnicBasket; // Open type here. We don't know what T is.} // Closed type here: T is Food.public class ParkPicnicBlanket : PicnicBlanket<Food> {}
這里picnicBasket
的類型是開放的:尚未分配任何內(nèi)容T
。當(dāng)您使用特定類型創(chuàng)建具體類型的PicnicBlanket時(例如,通過編寫)PicnicBlanket<Food> p = new PicnicBlanket<Food>()
,我們現(xiàn)在將其稱為已關(guān)閉。
- 3 回答
- 0 關(guān)注
- 466 瀏覽
添加回答
舉報
0/150
提交
取消