之前一直用C++,对C#的语法不是很熟,请朋友们多教教,谢谢了.下面的代码,派生类的实例怎样写,可以去调用基类的方法呢?class BaseCls
{
    public void Func()
    {
        Console.WriteLine("Base Func");
    }
}
class DivCls: BaseCls
{
    public new void Func()
    {
        Console.WriteLine("Div Func");
    }
    public void RunBaseFunc()//在类里面写base可以调用基类的,但我想在类外面,用实例来调用
    {
        base.Func();
    }
}class MainEntry
    {
        static void Main(string[] args)
        {
            DivCls div = new DivCls();
            div.Func();下面是我在C++写的可以在派生类调用基类的代码,不知道在C#里要怎么写?class Base1{
public:
void Func(){
cout<<"Base Func"<<endl;
}
};class Div1 : public Base1{
public:
void Func(){
cout<<"Div Func"<<endl;
}
};int main(int argc, char* argv[])
{
Div1 d1;
d1.Base1::Func();//可用实例调用基类的方法

解决方案 »

  1.   

    你不是已经定义了RunBaseFunc,
    base.Func();
      

  2.   

    真不明白,为什么不基类定义虚函数,派生类却定义new函数来隐含基类
      

  3.   

    DivCls div = new DivCls();
    BaseCls b = (BaseCls)div as BaseCls;
    b.Func();
      

  4.   

     BaseCls div = new DivCls();
     div.Func();
      

  5.   

    BaseCls b = new DivCls();b.Func();
      

  6.   

    class BaseCls
        {
            public virtual void Func()    //定义虚方法
            {
                Console.WriteLine("Base Func");
            }
        }
        class DivCls : BaseCls
        {
            public override void Func()
            {
                Console.WriteLine("Div Func");
            }
        }    class MainEntry
        {
            static void Main(string[] args)
            {
                BaseCls dc = new DivCls();
                dc.Func();        //输出Div Func            BaseCls bs = new BaseCls();
                bs.Func();        //输出Base Func        }
        }
      

  7.   

    BaseCls bc = new DivCls();
    bc.Func();
      

  8.   

    谢谢楼上的各位,我其实就是想在一个派生类的实例上,可以自己去控制执行派生的Func 或 基类的 Func
    虚函数的确是个好方法,不过也是对应的如果是基类就执行基类,如果对应派生类就执行派生类,没有说可以自由控制执行哪一个的 Func回2楼,我的代码极可能并不是一个好的设计,只是为了测试一下语法的使用而已.参考3楼的代码,我这样实现了一下.
                DivCls div = new DivCls();
                div.Func(); //执行派生类本身的
                ((BaseCls)div).Func();  //执行基类的   
      

  9.   

             DivCls di = new DivCls();
             //di.Func();
             ((BaseCls)di).Func();