这个是父类
public class CycleAry
{
protected string[] Items;
protected int end;
public int Totlen;
public int length;
public CycleAry(int Len)
{
Items = new string[Len];
this.end = this.Totlen;
this.Totlen = Len;
this.length = 0;
}

}
子类中:
public class MenuAry : MyCls.CycleAry
{
public MenuAry(int index)
{
base(index);
}

出错提示:
E:\exercises\C#\ConsoleApplication\MenuAry.cs(10): 重载“CycleAry”方法未获取“0”参数E:\exercises\C#\ConsoleApplication\MenuAry.cs(12): 在此上下文中使用关键字 base 是无效的请问怎样才能做到java里面super(index)那种效果啊?

解决方案 »

  1.   

    啊!!!!!!!!!!
    public class MenuAry : MyCls.CycleAry
    {
    public MenuAry(int index)
    {
    base(index);//C#不是这样用的
    }

    试试看这个public class MenuAry : MyCls.CycleAry
    {
    public MenuAry(int index):base(index)
    {

    }

    嘿嘿~~~~~~~~~~~~~~~~~~~~~~~
      

  2.   

    呵呵,谢谢了,转贴一篇全一点的。
    base 关键字用于从派生类中访问基类的成员: 调用基类上已被其他方法重写的方法。 
    指定创建派生类实例时应调用的基类构造函数。 
    基类访问只能在构造函数、实例方法或实例属性访问器中进行。从静态方法中使用 base 关键字是错误的。示例
    在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法。// keywords_base.cs
    // Accessing base class members
    using System;
    public class Person 
    {
    protected string ssn = "444-55-6666";
    protected string name = "John L. Malgraine";public virtual void GetInfo() 
    {
    Console.WriteLine("Name: {0}", name);
    Console.WriteLine("SSN: {0}", ssn);
    }
    }
    class Employee: Person 
    {
    public string id = "ABC567EFG";public override void GetInfo() 
    {
    // Calling the base class GetInfo method:
    base.GetInfo();
    Console.WriteLine("Employee ID: {0}", id);
    }
    }class TestClass {
    public static void Main() 
    {
    Employee E = new Employee();
    E.GetInfo();
    }
    }
    输出
    Name: John L. Malgraine
    SSN: 444-55-6666
    Employee ID: ABC567EFG
    有关其他示例,请参见 new、virtual 和 override。示例
    本示例显示如何指定在创建派生类实例时调用的基类构造函数。// keywords_base2.cs
    using System;
    public class MyBase
    {
    int num;public MyBase() 
    {
    Console.WriteLine("in MyBase()");
    }public MyBase(int i )
    {
    num = i;
    Console.WriteLine("in MyBase(int i)");
    }public int GetNum()
    {
    return num;
    }
    }public class MyDerived: MyBase
    {
    // This constructor will call MyBase.MyBase()
    public MyDerived() : base()
    {
    }// This constructor will call MyBase.MyBase(int i)
    public MyDerived(int i) : base(i)
    {
    }public static void Main() 
    {
    MyDerived md = new MyDerived();
    MyDerived md1 = new MyDerived(1);
    }
    }
    输出
    in MyBase()
    in MyBase(int i)
      

  3.   

    public class MenuAry : MyCls.CycleAry
    {
    public MenuAry(int index):base(index) {
    }