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#规范中找不到明确的答案,但由于静态方法不能被重写(只能重载),我愿意打赌类似的规则也适用于静态字段/属性