Unfortunately, this is not possible, as dtb explains .
One option is to make Ageneric as follows:
public class A<T>
{
public static void Foo()
{
}
}
public class B : A<B>
{
}
Another possibility is to make the method A.Foogeneral, and then provide stub methods in derived types, which then invoke the "basic" ialmentation.
. , , B.Foo, A , A.Foo, .
public class A
{
protected static void Foo<T>()
{
}
}
public class B : A
{
public static void Foo()
{
A.Foo<B>();
}
}