【发布时间】:2013-09-06 20:38:39
【问题描述】:
我有
class X<T> : Base
{
//For exemple:
static T something();
}
我可以拥有
class A : X <A>
{
}
逻辑上是这样的:
class A : Base
{
static A something();
}
这很好用。
但在我的理解中,它是一种自我引用(A 是 X 的孩子,而 X 在 A 之前不存在......),这打破了计算机科学的基础,所以我想知道什么是我的理解错了吗??
【问题讨论】:
-
仅仅因为你可以做某事并不意味着这是一个好主意。 ;)
-
@SolarBear 我认为这里没有坏主意。
-
您能否更详细地解释一下为什么您认为这不起作用? “具有返回该类实例的方法的类”在逻辑上没有任何不连贯之处。
-
@TimGoodman 当 A 不存在时,X 不应该存在,因为 A 不存在,所以给定 X 在 A 之前不存在,A 不能从 X 继承
-
实际上你这样做了很多次,例如 IComparable
标签: c# class generics self-reference