使用<typeparameter> C#</typeparameter>的类语法

时间:2012-04-20 14:23:24

标签: c# .net class generics

  

可能重复:
  What does “T” mean in C#?
  What does <T> denote in C#

我搜索了这个问题,但因为我对这种语法一无所知,所以搜索得不够好。好吧,经过简短的解释,我的问题是:

当我正在寻找粒子效应库时,我遇到了这个:

[Serializable]
public class DPSF<Particle, Vertex> : IDPSFParticleSystem
  where Particle : global::DPSF.DPSFParticle, new()
  where Vertex : struct, global::DPSF.IDPSFParticleVertex
{
  // constructors, methods, parameters here ...
}

这种符号在毯子(&lt; ...&gt;)中的含义是什么以及它是如何使用的?

2 个答案:

答案 0 :(得分:2)

它们是可以传递给类定义的泛型类型:

一个简单的例子:

public class Test<T>
{
   public T yourVariable;  
}

Test<int> intClass = new Test();
Test<string> stringClass = new Test();

intClass.yourVariable // would be of type int
stringClass.yourVariable // would be of type string

其中T是您想要的类型(即另一个类,字符串,整数,任何通用的)

其中Particle:global :: DPSF.DPSFParticle - 表示Particle对象必须从DPSF.DPSFParticle继承

答案 1 :(得分:1)

这意味着DPSF类是泛型类。 &lt;&gt;之间的粒子和顶点是类型参数。这意味着DPSF作为参数获得两种类型,并作为泛型类。

请看这里:MSDN: Generics

修改 Where关键字允许您限制类型参数。其中:class表示参数必须是一个类才能使这个泛型类起作用。