覆盖静态变量/方法并在基类中使用它们

时间:2016-02-04 14:00:26

标签: c# inheritance static derived-class

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

public class BaseClass
{
    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 DerivedClass : BaseClass
{
    public new static int Size = 2;

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

现在,当我调用DerivedClass.DoSomething时,我想要使用DerivedClass中的Size值和DoSomethingElse,但是使用的是BaseClass值。有没有办法让它使用DerivedClass变量和方法?

1 个答案:

答案 0 :(得分:0)

您无法覆盖静态成员。它们属于类本身,并且不与类的任何实例相关联,因此该概念不适用。