How can I override the ToString() method in C#?
I want to override the Tostring() method for changing some characters. I开发者_如何学运维s it possible? If yes, How can I do this?
In your class where you want to override it in, add:
public override string ToString()
{
// return your string representation
}
As per your question, to change some characters in the ToString
implementation, you need to call the existing ToString
method by using the base
keyword:
public override string ToString()
{
return base.ToString().Replace("something", "another thing");
}
Note that if you forget the base
keyword it will call itself repeatedly until you get a StackOverflowException
.
Add the following in the class you want to override the ToString function:
public override string ToString()
{
// Add your implementation here
}
See example at MSDN.
public override String ToString()
{
return String.Format("Test {0}", 101);
}
All you need is to try to write public override, and then Visual Studio will create the method for you like this:
public override string ToString()
{
// Implement your own code and return desired string
}
If someone looks for a general answer to "How to override the ToString() method", I've written a post, "Override ToString() using JSON serialization or something else."
In a summary, the following technologies can be used to simplify creation of ToString():
JSON serialization (either DataContractJsonSerializer, JSON.NET or the NuGet package JsonValue).
XmlSerialize
LINQPad's dump an arbitrary object to an HTML string
ServiceStack.Text C# .NET Extension method: T.Dump();
精彩评论