[英]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()的创建:
JSON序列化(DataContractJsonSerializer,JSON.NET或NuGet包JsonValue)。
XMLSERIALIZE
LINQPad 将任意对象转储到HTML字符串
ServiceStack.Text C#.NET扩展方法:T.Dump();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.