为了账号安全,请及时绑定邮箱和手机立即绑定

.NET中的“开放通用类型”究竟是什么?

.NET中的“开放通用类型”究竟是什么?

HUX布斯 2019-07-26 15:41:12
.NET中的“开放通用类型”究竟是什么?我正在通过Asp.Net MVC课程并了解到,对于一种方法来确定控制器的动作,它必须没有“开放的通用类型”我对某些泛型有所了解并在某种程度上使用它们,但是:什么是.Net中的开放泛型类型。是否存在封闭的泛型类型?开放泛型类型是一个不经常使用的术语。与它混淆使用的是什么?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

只是添加:

Dictionary<string, T>(或更确切地说Dictionary<string,>)仍然是开放式的。

例:

void Foo<T>(Dictionary<string,T> dic) { ... }


查看完整回答
反对 回复 2019-07-26
?
阿晨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>(),我们现在将其称为已关闭


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 432 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信