如何在类中重写和格式化ToString()方法?

Jus*_*ker 6 .net c# overriding tostring

我搜索了Google和这个网站以找到答案.我也在课本中阅读过,但我仍然不明白它是如何应用的.

这就是我所知道的:

  • 它用于显示对象对自身的了解.

  • 它可以用于格式化输出关于它自己知道的内容.

  • 它必须在要使用的方法中被覆盖.

Teo*_*gul 17

认为你有一个类:

public class Person
{
   public string FirstName { get; set;}
   public string LastName { get; set;}
   private string age;
}
Run Code Online (Sandbox Code Playgroud)

使用这个:

public override string ToString()
{
   return string.Format("[First Name: {0}; Last Name: {1}; Age: {2}]", FirstName, LastName, age);
}
Run Code Online (Sandbox Code Playgroud)

将揭示全班的所有内部成员.实际上,它最好用于以预先格式化的方式快速检索类的公共字段(从而有效地将封装在类中的数据转换为字符串).

这里还有一本来自Pro C#2010和.NET 4平台的非常有用的建议:"您创建的许多类(和结构)可以从覆盖ToString()中获益,以便返回该类型当前状态的字符串文本表示形式这对于调试(以及其他原因)非常有帮助.你如何选择构造这个字符串是个人选择的问题;但是,推荐的方法是用分号分隔每个名称/值对并包装整个字符串但是,请始终记住,正确的ToString()重写也应该考虑在继承链中定义的任何数据.当您为扩展自定义基类的类重写ToString()时,第一个业务顺序是使用base关键字从父级获取ToString()值.一旦获得父级的字符串数据,就可以附加派生类的自定义信息."