C#通过其他类的ToString调用类中的ToString



我有两个类。我的问题是,如何在我的第二堂课Time中调用第一堂课Racer中的ToString。

简化版本:class B To string(返回class A ToString+来自class B的东西)

class Racer
{
    public string name, surname;

    public void ReadingSeparatorsRacer(string line) //Rozdělení separatorem
    {
        char[] separators = new char[] { ';' };
        string[] field = line.Split(separators, StringSplitOptions.RemoveEmptyEntries);
        surname = field[0]; //Příjmení
        name = field[1]; //Jméno
    }
    public override string ToString()
    {
        return surname + name;
    }           
}
class Time
{
    DateTime startTime, finishTime, result;
    public void ReadingSeparatorsTime(string line)
    {
        char[] separators = new char[] { ';', ':', '.' };
        string[] field = line.Split(separators, StringSplitOptions.RemoveEmptyEntries);
    }
    public override string ToString()
    {
        string s = Racer.ToString
        return "" result;
    }
} 

我在想这样的事情:

public override ToString()
{
 return Racer.ToString + result;
}

但遗憾的是,这并不奏效:(

有什么想法吗?

感谢的帮助

由于ToString()不是静态的,所以不能调用Racer.ToString(

你必须安装一个Racer对象,然后对它调用ToString()。

编辑:这可能更接近您的意图:

class Racer
{
    public string name, surname;
    public Time Time { get; set; }
    public override string ToString()
    {
        return surname + name + "(" + Time.ToString() + ")";
    }           
}
class Time
{
    DateTime startTime, finishTime, result;
    public override string ToString()
    {
        TimeSpan elapsedTime = finishTime - startTime;
        return elapsedTime.ToString();
    }
} 

每个Racer都是一个Time属性,代表他们跑比赛所需的时间。Racer.ToString方法调用Time.ToString方法以包括比赛时间以及Racer的名称。

通常,获得可自我维护的ToString方法的最简单方法就是使用库来实现这一点。例如,来自https://github.com/kbilsted/StatePrinter/blob/master/doc/AutomatingToStrings.md

class AClassWithToString
{
  string B = "hello";
  int[] C = {5,4,3,2,1};
  // Nice stuff ahead!
  static readonly Stateprinter printer = new Stateprinter();
  public override string ToString()
  {
    return printer.PrintObject(this);
  }
}

请注意,在类中引入新字段时,ToString将如何自动更新自身。

最新更新