gpt4 book ai didi

c# - 为我的自定义对象提供 ToString()

转载 作者:行者123 更新时间:2023-11-30 20:10:55 27 4
gpt4 key购买 nike

我有一个包含很多很多属性的类。在我的程序中,我必须大量登录。通常我必须手动构建日志字符串,如

string log = "Current state of object:" + "Property1" + myObj.Property1 + ...
  1. 我只是想如果重写 ToString 并提供我需要的任何日志记录会怎么样。也算goog做法?
  2. 如何提供格式化程序控制字符串?假设我希望我的 ToString 在两种模式下运行一个是所有属性的完整输出,另一个是仅输出相关属性的简单版本

类似于 MyObj.ToString("full") 和 MyObj.ToString("basic")

最佳答案

重写 ToString 确实是一种很好的做法,只要您提供良好的信息即可。

至于拥有不同类型的 ToString - 这是可能的,但这样你就不会覆盖 ToString,而是提供一个重载(任何使用类都需要知道)。

我将实现轻量级版本作为覆盖,并为完整的属性集创建一个VerboseToString 函数。

如果您有很多这样的对象,您可以使用 VerboseToString 方法创建一个 IVerboseString 接口(interface),并在您的对象中实现它。这样您就可以在日志记录中简单地使用接口(interface)引用。

关于c# - 为我的自定义对象提供 ToString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4460083/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com