I needed some help understanding recursive generics in C#.
I came across this code:
public abstract class Value<T> where T : Value<T>
{
....
}
public class UserId: Value<UserId>
{
}
I am confused by the part where the Value<T> is used on both sides of the where clause. Can someone please explain what the code does?