相关疑难解决方法(0)

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

我正在通过Asp.Net MVC课程并了解到,对于一种方法来确定控制器的动作,

  • 它必须没有"开放的通用类型"

我对某些泛型有所了解并在某种程度上使用它们,但是:

  • 什么是.Net中的开放泛型类型.
  • 是否存在封闭的泛型类型
  • 开放泛型类型是一个不经常使用的术语.与它混淆使用的是什么?

.net c# generics open-generics

114
推荐指数
4
解决办法
3万
查看次数

C#中空泛型参数<,>的术语是什么?

可能重复:
C#语言:泛型,打开/关闭,绑定/未绑定,构造

在使用C#中的反射做一些事情时,我注意到某些类型具有类型定义,例如

Foo<,>
Run Code Online (Sandbox Code Playgroud)

这种表示法的官方术语是什么?

c# generics

10
推荐指数
1
解决办法
3351
查看次数

通用类型MyType <,>实际上是一个类型?

由于在MEF中导出泛型类型而引起的混乱,我对此感到困惑

我注意到:

new Dictionary<string,bool>().GetType() == typeof(Dictionary<,>)
false
new Dictionary<string,bool>().GetType().GetGenericTypeDefinition() == typeof(Dictionary<,>)
true
Run Code Online (Sandbox Code Playgroud)

然而,Dictionary <,>本身不被视为'类型',因为这实际上会产生编译错误:

new Dictionary<string,bool> as Dictionary<,>
Type expected
new Dictionary<string,bool> is Dictionary<,>
Type expected
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,Dictionary <,>实际上是一种类型?.NET对泛型类型的处理方式与非泛型类型不同吗?

现在在MEF中我可以导出一个泛型类

[Export(typeof(MyGenericClass<,>))]
Run Code Online (Sandbox Code Playgroud)

这将满足进口要求,如

[Import]
public MyGenericClass<string, long> Instance { get; set; }
Run Code Online (Sandbox Code Playgroud)

我对这里的类型系统规则感到困惑

.net c# clr mef

3
推荐指数
1
解决办法
116
查看次数

标签 统计

c# ×3

.net ×2

generics ×2

clr ×1

mef ×1

open-generics ×1