代码之家  ›  专栏  ›  技术社区  ›  masoud ramezani

如何重写C中的toString()方法?

  •  8
  • masoud ramezani  · 技术社区  · 15 年前

    我想重写toString()方法来更改一些字符。有可能吗?如果是,我该怎么做?

    6 回复  |  直到 7 年前
        1
  •  15
  •   Mark Byers    15 年前

    根据你的问题, 改变 中的一些字符 ToString 实现时,需要调用现有的 弦线 方法使用 base 关键字:

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

    注意,如果你忘记了 基础 关键字它将反复调用自己,直到 StackOverflowException .

        2
  •  16
  •   Wim    15 年前

    在要在其中重写它的类中,添加:

    public override string ToString()
    {
      // return your string representation
    }
    
        3
  •  5
  •   stiank81    15 年前

    在要重写ToString函数的类中添加以下内容:

    public override string ToString()
    {
        // Add your implementation here
    }
    
        4
  •  3
  •   p2u    15 年前

    参见示例 MSDN .

    public override String ToString() 
    {
        return String.Format("Test {0}", 101);
    }
    
        5
  •  3
  •   Peter Mortensen icecrime    7 年前

    你只需要试着写 公共覆盖 ,然后Visual Studio将为您创建如下方法:

     public override string ToString()
     {
          // Implement your own code and return desired string
     }
    
        6
  •  0
  •   Peter Mortensen icecrime    7 年前

    如果有人想找到“如何重写toString()方法”的一般答案,我写了一篇文章, Override ToString() using JSON serialization or something else ."

    总之,可以使用以下技术简化toString()的创建:

    1. JSON序列化(datacontractJSonserializer、json.net或nuget包jsonvalue)。

    2. XMLSerial化

    3. LINQPad dump an arbitrary object to an HTML string

    4. 服务堆栈.text C# .NET Extension method: T.Dump();