C# - 在 sub-classes 中指定 super-class 的类型参数?
C# - Specifying type parameters of super-class in sub-classes?
我正在尝试在 C# 中执行以下操作。
public class Parent<T> where T : Parent<???>
{
public T Prop { get; set; }
}
public class Child : Parent<Child>
{
}
我该怎么做?
这很好用:
public class Parent<T> where T : Parent<T>
{
public T Prop { get; set; }
}
public class Child : Parent<Child>
{
}
请注意这一点,因为 c# 不会强制执行真正的 Parent
/Child
关系。例如,给定上面的代码,我这样做也是合法的:
public class Stranger : Parent<Child>
{
}
如果您编写单元测试,那么值得编写一个类型检查器来查找此错误模式。
我正在尝试在 C# 中执行以下操作。
public class Parent<T> where T : Parent<???>
{
public T Prop { get; set; }
}
public class Child : Parent<Child>
{
}
我该怎么做?
这很好用:
public class Parent<T> where T : Parent<T>
{
public T Prop { get; set; }
}
public class Child : Parent<Child>
{
}
请注意这一点,因为 c# 不会强制执行真正的 Parent
/Child
关系。例如,给定上面的代码,我这样做也是合法的:
public class Stranger : Parent<Child>
{
}
如果您编写单元测试,那么值得编写一个类型检查器来查找此错误模式。