Sun*_*nny 3 .net c# overriding tostring
我需要能够检索对象的字符串版本.
例如:下面SearchCriteria应该提供" Search Parameters: FromDate:{0}, ToDate {1}, .."
public class SearchCriteria
{
public string FromDate {get;set;}
public string ToDate {get;set;}
public string FromAge {get;set;}
public string ToAge {get;set;}
//other 10 properties
}
Run Code Online (Sandbox Code Playgroud)
但是从我读过的其他线程中,由于性能问题,不建议对长字符串使用ToString().我想知道是否可以这样使用它,或者我是否应该考虑使用私有方法.
编辑
此字符串表示形式在业务逻辑中用于NOT以用于调试目的.
从文档:"返回表示当前对象的字符串."
如果要创建一个表示对象的字符串,那就是该位置.
所以 - 是的!
"此字符串表示形式用于业务逻辑中,不用于调试目的."
字符串表示int形式也用于业务逻辑.问题是该字符串表示是否特定于该业务逻辑,或者它只是您在业务逻辑中使用的该对象的一般表示.
如果它特定于该特定业务逻辑,则字符串的生成假定是该业务逻辑的一部分.
如果没有,但是该对象有许多可选的字符串表示,您可能希望实现IFormattable,它定义了一个ToString获取IFormatProvider和格式化字符串作为参数的方法.
否则,常客ToString是你的朋友.