C# 隐藏静态变量/函数并在基类中使用它们

C# 隐藏静态变量/函数并在基类中使用它们,c#,inheritance,static,C#,Inheritance,Static,我有一个基类,包含一个受保护级别的静态变量、一个受保护级别的静态函数和一个公共函数: public class ClassA { protected static int Size = 4; public static byte[] DoSomething(byte[] params) { // use Size somehow params = DoSomethingElse(params); return params

我有一个基类,包含一个受保护级别的静态变量、一个受保护级别的静态函数和一个公共函数:

public class ClassA
{
    protected static int Size = 4;

    public static byte[] DoSomething(byte[] params)
    {
        // use Size somehow
        params = DoSomethingElse(params);
        return params;
    }

    protected static byte[] DoSomethingElse(byte[] params)
    {
        // do whatever
        return params;
    }
}
public class ClassB : ClassA
{
    public new static int Size = 2;

    protected new static byte[] DoSomethingElse(byte[] params)
    {
        // do something different than base class
        return params;
    }
}
以及隐藏受保护级别变量和函数的派生类:

public class ClassA
{
    protected static int Size = 4;

    public static byte[] DoSomething(byte[] params)
    {
        // use Size somehow
        params = DoSomethingElse(params);
        return params;
    }

    protected static byte[] DoSomethingElse(byte[] params)
    {
        // do whatever
        return params;
    }
}
public class ClassB : ClassA
{
    public new static int Size = 2;

    protected new static byte[] DoSomethingElse(byte[] params)
    {
        // do something different than base class
        return params;
    }
}

现在,当我调用ClassB.DoSomething时,我希望使用ClassB中的Size值和DoSomethingElse,但是使用ClassA值。有没有一种方法来使用这个类变量和方法?< /p>你要问的是静态函数的运行时多形性……我认为这是不可能的……Viru是正确的,这是不可能的。我在C#规范中找不到明确的答案,但由于静态方法不能被重写(只能重载),我愿意打赌类似的规则也适用于静态字段/属性