generic constraint
A rule limiting which types a type parameter accepts.
A where clause constrains a type parameter (class, struct, notnull, new(), a base class, or interfaces).
Examples
static T Larger<T>(T a, T b) where T : IComparable<T> => a.CompareTo(b) >= 0 ? a : b;accepts only types that can be compared.
See also