[英]Recursive generic type parameter in C#
我需要一些幫助來理解 C# 中的遞歸 generics。
我遇到了這段代碼:
public abstract class Value<T> where T : Value<T>
{
....
}
public class UserId: Value<UserId>
{
}
我對 where 子句兩側使用Value<T>
的部分感到困惑。 有人可以解釋一下代碼的作用嗎?
它被稱為“ 奇怪地重復出現的模板模式”。 C# 示例在這里和這里。 通常用於接口類型的流暢語法,以使泛型類型對基本實現“已知”。
它是一個遞歸泛型類型參數。
這意味着 T 必須是 T 的值。
發現很難理解是正常的,我發現很難解釋......對不起。
其他人應該能夠更好地解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.