我需要一些帮助来理解 C# 中的递归泛型。
我遇到了这段代码:
public abstract class Value<T> where T : Value<T>
{
....
}
public class UserId: Value<UserId>
{
}
我对 Value<T>
所在的部分感到困惑用在 where 子句的两边。有人可以解释一下代码的作用吗?
最佳答案
它被称为“Curiously recurring template pattern”。 C# 示例 here和 here .通常用于 fluent syntax接口(interface)类型,以保持通用类型对基本实现“已知”。
关于c# - C# 中的递归泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58292221/