调用子类的方法

时间:2013-07-09 11:44:20

标签: c# inheritance methods polymorphism

我正在尝试使用包含一系列使用此方法的字符串的列表

    public  List<String> ListJobs(Job job)
    {
        List<String> ListJobs = new List<string>();

        foreach (Job curjob in Jobs)
        {


            String jobAsString = curjob.ToString();

            ListJobs.Add(jobAsString); 

        }
        return ListJobs;
  //Get the list of strings  

我目前的结构是

JobLedger(包含它的列表)

然后由访问和拾取继承的Job Parent类问题在于,在上面的代码中,它不是在子类中使用重写的tostring方法,而是默认为父类。

    public void NewerList()
        //No Pickup display problem is here. Liststring refers to base sting method instead of child
    {


        LstJob.Items.Clear();
        //Clears the list


        List<String> listOfVis = TheLedger.ListJobs(Thejob);
        //Get a list of strings to display in the list box


        LstJob.Items.AddRange(listOfVis.ToArray());


    }

我似乎把它缩小到这段代码,而List调用父Job类,而不是任何一个子类

3 个答案:

答案 0 :(得分:1)

尝试将要获取的对象类型转换为包含要使用的函数的类。

答案 1 :(得分:0)

确保您确实覆盖 ToString

您所描述的内容听起来更像是在派生类中阴影

override(你想要的):

public override string ToString()
{
    // ...
}

shadow (我认为你有):

public string ToString()
{
    // ...
}

// or:

public new string ToString()
{
    // ...
}

答案 2 :(得分:0)

您需要在重写方法之前使用override