.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 关注
- 432 浏览
添加回答
举报
0/150
提交
取消