Это не стоит хлопот и моментов WTF, которые вы получите в обзорах кода, если вы спросите меня.

тим, у меня есть такие классы:

class A
{
   public static int Count()
}
class B : A
{
}
class C : A
{
}

Как я могу скрыть этот статический метод для класса B, но не для C?

Ответы на вопрос(3)

создав другой класс, назовем его Special, который наследует A. Затем вы заставите C наследовать от Special, а B наследуют от A. Кроме того, у вас будет защищенный статический метод, то есть только те классы, которые наследуют Special, иметь доступ к нему.

class A
{
}
class Special : A
{
    protected static int Count()
}
class B : A
{
}
class C : Special
{
}

Единственным решением было бы изменить иерархию классов.Это не стоит хлопот и моментов WTF, которые вы получите в обзорах кода, если вы спросите меня.

class ABase
{
}
class A
{
   public static int Count()
}
class B : ABase
{
}
class C : ABase
{
}
Решение Вопроса

кто угодно могу назвать это.

Вы можете сделать его защищенным, что позволит вызывать его изнутри B или C, но не из других мест ... но вы все равно не сможете различить B и C.

Ваш ответ на вопрос