我搜索了这个问题,但因为我对这种语法一无所知,所以搜索得不够好。好吧,经过简短的解释,我的问题是:
当我正在寻找粒子效应库时,我遇到了这个:
[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;)中的含义是什么以及它是如何使用的?
答案 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表示参数必须是一个类才能使这个泛型类起作用。