164 votes

En c# qu'est - 'T : de la classe moyenne?

En C# qu'est - where T : class moyenne?

C'est à dire.

public IList<T> DoThis<T>() where T : class

137voto

Andy Rose Points 7987

Suffit de mettre ceci est contraignant le paramètre générique d'une classe (ou plus précisément un type de référence qui pourrait être une classe, une interface, un délégué, ou de type tableau).

Voir cet article MSDN pour plus de détails.

54voto

Donut Points 32892

C'est un type de contrainte sur T, en précisant qu'elle doit être une classe.

L' where clause peut être utilisée pour spécifier un autre type de contraintes, par exemple:

where T : struct // T must be a struct
where T : new()  // T must have a default parameterless constructor
where T : IComparable // T must implement the IComparable interface

Pour plus d'informations, consultez MSDN page sur l' where clause, ou paramètre générique contraintes.

43voto

Oded Points 271275

C'est un type générique de contrainte. Dans ce cas, cela signifie que le type générique T doit être un type de référence (classe, interface, délégué, ou de type tableau).

17voto

Vilx- Points 37939

Qui restreint T pour les types référence. Vous ne serez pas en mesure de mettre en valeur les types (structs et de type primitif, sauf string).

9voto

Isak Savo Points 15357

cela signifie que le type utilisé comme T lorsque la méthode générique est utilisé doit être d'une classe - c'est à dire qu'il ne peut pas être une structure ou construits en nombre comme int ou double

// Valid:
var myStringList = DoThis<string>();
// Invalid - compile error
var myIntList = DoThis<int>();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X