为什么我们不能使用base关键字在静态方法中使用基类方法?
两者都可以在编译时使用.
class A
{
public virtual void Func(int a=4){
Console.WriteLine(" A Class: "+a);
}
}
class B : A
{
public new void Func(int a = 12)
{
Console.WriteLine(" B Class: "+ a);
}
}
class C : B
{
public static void Func()
{
base.Func(); // why not ????
}
}
public class Program
{
public static void Main(string[] args)
{
B ob = new C();
ob.Func();
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
lah*_*rah 14
因为base关键字指的是当前类实例的基类.但是你没有静态方法中的当前实例 - 它们是静态的而不是实例.
B.Func() 如果Func()在B类中将方法设为静态,则可以调用.
| 归档时间: |
|
| 查看次数: |
2248 次 |
| 最近记录: |