簡體   English   中英

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

[英]How can I override the ToString() method in C#?

我想覆蓋Tostring()方法來改變一些字符。 可能嗎? 如果是,我該怎么做?

在您要在其中覆蓋它的類中,添加:

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

根據您的問題,要更改 ToString實現中的某些字符,您需要使用base關鍵字調用現有的ToString方法:

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

請注意,如果您忘記了base關鍵字,它將重復調用自身,直到您獲得StackOverflowException

在要覆蓋ToString函數的類中添加以下內容:

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

請參閱MSDN上的示例。

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

您只需要嘗試編寫公共覆蓋 ,然后Visual Studio將為您創建這樣的方法:

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

如果有人尋找“如何覆蓋ToString()方法”的一般答案,我寫了一篇帖子,“ 使用JSON序列化或其他東西覆蓋ToString() 。”

總結一下,以下技術可用於簡化ToString()的創建:

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

  2. XMLSERIALIZE

  3. LINQPad 將任意對象轉儲到HTML字符串

  4. ServiceStack.Text C#.NET擴展方法:T.Dump();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM