C# 如何隐藏静态方法
假设我有一门课,像这样:C# 如何隐藏静态方法,c#,polymorphism,static-methods,C#,Polymorphism,Static Methods,假设我有一门课,像这样: class A { public static int Count() } class B : A { } class C : A { } 我怎样才能为B类隐藏这个静态方法而不为C类隐藏这个静态方法呢?基本上你不能。见鬼,如果它是公共的,那么任何人都可以打电话给它 您可以使它受到保护,这将允许从B或C内部调用它,但不能从其他地方调用它。。。但是您仍然无法区分B和C。您可以通过创建另一个继承A的类来实现这一点,我们称之为Special。然后您将使C从Special
class A
{
public static int Count()
}
class B : A
{
}
class C : A
{
}
我怎样才能为B类隐藏这个静态方法而不为C类隐藏这个静态方法呢?基本上你不能。见鬼,如果它是公共的,那么任何人都可以打电话给它
您可以使它受到保护,这将允许从B或C内部调用它,但不能从其他地方调用它。。。但是您仍然无法区分B和C。您可以通过创建另一个继承A的类来实现这一点,我们称之为Special。然后您将使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
{
}