如何在C#中覆盖ToString()方法?

时间:2010-02-23 11:49:55

标签: c# override

我想覆盖Tostring()方法来更改某些字符。可能吗?如果是,我该怎么做?

6 个答案:

答案 0 :(得分:16)

在您要覆盖它的班级中,添加:

public override string ToString()
{
  // return your string representation
}

答案 1 :(得分:15)

根据您的问题,要更改 ToString实施中的某些字符,您需要使用ToString关键字调用现有的base方法:

public override string ToString()
{
    return base.ToString().Replace("something", "another thing");
}

请注意,如果您忘记base关键字,它会反复调用自己,直到您获得StackOverflowException

答案 2 :(得分:5)

在要覆盖ToString函数的类中添加以下内容:

public override string ToString()
{
    // Add your implementation here
}

答案 3 :(得分:3)

请参阅MSDN上的示例。

public override String ToString() 
{
    return String.Format("Test {0}", 101);
}

答案 4 :(得分:3)

您只需尝试编写公共覆盖,然后Visual Studio将为您创建方法:

 public override string ToString()
 {
      // Implement your own code and return desired string
 }

答案 5 :(得分:0)

如果有人寻找“如何覆盖ToString()方法”的一般答案,我写了一篇帖子“Override ToString() using JSON serialization or something else。”

总结一下,以下技术可用于简化ToString()的创建:

  1. JSON序列化(DataContractJsonSerializer,JSON.NET或NuGet包JsonValue)。

  2. XMLSERIALIZE

  3. LINQPad的dump an arbitrary object to an HTML string

  4. ServiceStack.Text C# .NET Extension method: T.Dump();