.NET中的“开放通用类型”究竟是什么?我正在通过Asp.Net MVC课程并了解到,对于一种方法来确定控制器的动作,它必须没有“开放的通用类型”我对某些泛型有所了解并在某种程度上使用它们,但是:什么是.Net中的开放泛型类型。是否存在封闭的泛型类型?开放泛型类型是一个不经常使用的术语。与它混淆使用的是什么?
3 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
只是添加:
Dictionary<string, T>(或更确切地说Dictionary<string,>)仍然是开放式的。
例:
void Foo<T>(Dictionary<string,T> dic) { ... }
阿晨1998
TA贡献2037条经验 获得超6个赞
“开放泛型类型”只是一种尚未指定其类型的泛型类型(例如CargoCrate<T>)。一旦分配了具体类型(例如CargoCrate<Widget>),它就变为“关闭” 。
例如,假设你有这样的事情:
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的类型是开放的:尚未分配任何内容T。当您使用特定类型创建具体类型的PicnicBlanket时(例如,通过编写)PicnicBlanket<Food> p = new PicnicBlanket<Food>(),我们现在将其称为已关闭。
- 3 回答
- 0 关注
- 475 浏览
添加回答
举报
0/150
提交
取消
