3

我在库中有一些类,它们代表某些文件的分析和验证结果。

这些类包含枚举、无效属性列表等。

我编写了一个使用该库的 GUI 应用程序,并编写了一些函数以在富文本框中以可读形式编写这些类。

我突然想到,我可能必须在类的 ToString 覆盖中编写这种格式。

但是,所有这些格式都很长,包括插入制表符和新行,包括对列表的多次迭代,提取枚举描述等。

所以我想知道 - toString 大小和复杂性的标准是什么?我想在 toString 中编写困难的格式吗?或者也许我应该提供一些其他的通用接口——类的格式化可打印输出是否有任何通用接口?还是我应该在 GUI 应用程序中执行此操作?

谢谢!

4

2 回答 2

2

除了 UI 库之外,不应将诸如 UI 格式之类的东西烘焙到任何库中。

相反,您可以做的是提供一组与 UI 无关的类,这些类可以格式化您的实体,例如,可以执行生成期望在 UI 中显示的格式所需的复杂代码。

这些可以使用简单的界面,例如:

public interface IEntityFormatter<T>
{
    string GetFormattedValue(T myEntity);
}

public class Customer
{
    public string FullName {get;set;}
}

public class CustomerFormatter : IEntityFormatter<Customer>
{
    public string GetFormattedValue(Customer myEntity)
    {
        return myEntity.FullName;
    }
}
于 2012-04-30T12:47:38.390 回答
0

一般来说,ToString不应该很复杂,否则可能会减慢调试速度(注意它通常由调试器自动调用)。添加您自己的界面还允许您添加更多自定义。另一方面,如果您不需要任何格式设置,那么ToString可能是实现它的好地方。

于 2012-04-30T12:48:48.287 回答