如何重写 C# 中的 ToString() 方法?
我想重写 Tostring() 方法来更改某些字符。是否可以?如果是,我该怎么做?
I want to override the Tostring() method for changing some characters. Is it possible? If yes, How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
在您想要覆盖它的类中,添加:
In your class where you want to override it in, add:
根据您的问题,要更改
ToString
实现中的某些字符,您需要使用base 调用现有的
关键字:ToString
方法请注意,如果您忘记了
base
关键字,它将重复调用自身,直到您收到StackOverflowException
。As per your question, to change some characters in the
ToString
implementation, you need to call the existingToString
method by using thebase
keyword:Note that if you forget the
base
keyword it will call itself repeatedly until you get aStackOverflowException
.在要重写 ToString 函数的类中添加以下内容:
Add the following in the class you want to override the ToString function:
请参阅 MSDN 中的示例。
See example at MSDN.
您所需要的只是尝试编写 public override,然后 Visual Studio 将为您创建方法,如下所示:
All you need is to try to write public override, and then Visual Studio will create the method for you like this:
如果有人寻找“如何重写 ToString() 方法”的一般答案,我写了一篇文章,“使用 JSON 序列化或其他方式覆盖 ToString()。"
总之,可以使用以下技术来简化 ToString() 的创建:
JSON 序列化(DataContractJsonSerializer、JSON.NET 或 NuGet 包 JsonValue)。
XmlSerialize
LINQPad 的 将任意对象转储到 HTML 字符串
ServiceStack.Text C# .NET 扩展方法:T.Dump();
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();