C# 内置泛型类型

C# 内置泛型类型,c#,.net,generics,C#,.net,Generics,我在某个地方读到EventHandler是一个内置的泛型类型。为什么会这样?有人能给我解释一下区分泛型和非泛型类型的方法吗 谢谢, 阿比 ================ 我正在阅读微软.NETFramework应用程序开发基金会第二版,为MCT做准备。在第一章中,有一个问题如下:- 以下哪些是内置泛型类型的示例?(选择所有这些 适用。) A.可为空 B.布尔型 C.事件处理程序 D.系统绘图点 根据这本书,这个问题的答案是A和C。选项A可以,但不确定选项C。有人能解释一下吗?有两种类型:和。显

我在某个地方读到EventHandler是一个内置的泛型类型。为什么会这样?有人能给我解释一下区分泛型和非泛型类型的方法吗

谢谢, 阿比

================

我正在阅读微软.NETFramework应用程序开发基金会第二版,为MCT做准备。在第一章中,有一个问题如下:-

以下哪些是内置泛型类型的示例?(选择所有这些 适用。) A.可为空 B.布尔型 C.事件处理程序 D.系统绘图点


根据这本书,这个问题的答案是A和C。选项A可以,但不确定选项C。有人能解释一下吗?

有两种类型:和。显然,第一个不是泛型,第二个是。

t是EventHander处理的EventArgs的类型(因此
t:EventArgs

在C#中(但它也适用于Java),您可以通过存在类型参数来识别泛型,通常在
括号中指示

例如,C#中EventHandler的泛型类型声明为:

public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
在C#1.0(无泛型)中,您可以为以下两个事件创建自己的委托类型:

delegate void Event1Handler(object sender, T1 e);
delegate void Event2Handler(object sender, T2 e);
并使用它们将事件与处理程序绑定

从C#2.0开始,不需要创建新的委托类型,因为这两个处理程序都由泛型的
EventHandler
类型捕获(
TEventArgs
=
T1
TEventArgs
=
T2


有关泛型的介绍,请参见和。

要回答这个问题,您最终需要在MSDN索引中查找每个类型名称。Nullable显示为
Nullable
EventHandler
显示两次,带后缀和不带后缀。这些实际上是不同的类型。

问题的措辞很糟糕,但问题是哪些类型是泛型的(或具有泛型版本)。答案是and,因为and没有泛型等价物。

“EventHandler是内置泛型类型”-用什么语言?用什么编程语言?你读了什么?蒂姆/彼得,我更新了我原来的帖子。语言是C#。我怎么能不选择一个以上的答案作为接受答案?你们中的大多数人都以自己的方式回答了我的答案,我想至少把其中两个标记为已接受的答案!!有什么办法吗?还有一个:)与泛型关系不大。通过看,我可以说它是泛型的,但是如果你看到我在我的原始帖子(几分钟前更新)中发布的问题,它没有提到。是没有正确地询问该问题,还是仅仅通过类型的名称,我们就可以判断它是否为泛型?@user366436:Nullable和EventHandler都以泛型和非泛型形式存在。在我看来,这只是一个糟糕的问题。如果没有
,Nullable也存在:
delegate void Event1Handler(object sender, T1 e);
delegate void Event2Handler(object sender, T2 e);