Généricité contraintes en C#
Comme en Java 5, il est possible d'imposer des contraintes de généricité en C#.
Le type T doit implémenter une interface donnée :
public class MyGenericClass<T> where T:IComparable
{
...
}
Le type T doit hériter d'une classe donnée :
public class MyGenericClass<T> where T:MyParentClass
{
...
}
Le type T doit être une classe, et le type U une structure :
// cs_where.cs
// compile with: /target:library
using System;
class MyClassy<T, U>
where T : class
where U : struct
{
}
Syntaxe (MSDN) : http://msdn2.microsoft.com/en-us/library/6b0scde8.aspx
Contraintes sur les types (MSDN) : http://msdn2.microsoft.com/en-us/library/d5x73970.aspx