首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

*怎么让基类访问子类的静态成员*

2012-01-02 
***********如何让基类访问子类的静态成员***************因为在.NET里面静态成员不能用override那么如何

***********如何让基类访问子类的静态成员***************
因为在.NET里面静态成员不能用override那么如何才能在基类访问子类的静态成员呢

比如,我想实现如下的功能

public class CBase
{
  public static string PTest
  {
  get{return "base";}
  }

  public static string GetTest()
  {
  return PTest;
  }
}


public class CChild:CBase
{
  public new static string PTest
  {
  get{return "child";}
  }
}

像这样访问 GetTest  :

string a=CChild.GetTest();

那么得到的a的值是"base",如何才能返回 "child" 呢 ?是否能够实现?

[解决办法]
jf
[解决办法]
不可能实现,使用虚函数吧
[解决办法]
应该不行,你不能重写而用new的话即使不是静态的也不能访问啊
[解决办法]
要实现这个,肯定不能用静态成员,参考下面的代码

C# code
    public class CBase    {        public virtual string PTest        {            get { return "base"; }        }        public virtual string GetTest()        {            return PTest;        }    }    public class CChild : CBase    {        public override string PTest        {            get { return "child"; }        }    }
[解决办法]
修改一下:
public virtual string GetTest()
{
return PTest;
}
应改为
public string GetTest()
{
return PTest;
}
GetTest不必做虚函数

热点排行