![]() |
1
10
它们一开始是静态的,这会使测试变得更困难,并且会把所有的东西结合得更紧密。
更容易理解
|
![]() |
2
2
|
![]() |
3
2
这就产生了有趣的、类似ruby的语法。然而,正如约翰所说,仅仅因为你可以,并不意味着你应该。 这会让大多数C开发人员感到困惑,并增加不必要的困惑。 对于日志记录的特定目的,有更好的方法来获取所需内容。我的第一个问题是,为什么要推出自己的日志解决方案?日志记录是一个很好解决的问题,您不应该把开发周期浪费在某些事情上,例如log4net,它做得很好。 |
![]() |
4
1
编辑 现在我想起来了,我看到一些人主张扩展这样的简单对象,但是logger不是一个好的例子。如果您提供了一个.ToX()功能,比如将整数转换成一个MPH字符串或类似的东西,那么扩展方法可能会很有用,但记录器并不适合。 |
![]() |
5
1
通常代替
您的日志API(如果您正在使用一个)不仅可以记录字符串,还可以记录任何类型的对象。
你做这件事的方式挫败了这个想法。 |
![]() |
6
1
对于正确的日志记录,您需要的不仅仅是一些字符串。日期、来源、类别等,您可能希望以更结构化的方式存储这些信息。 总而言之,在字符串上创建日志扩展方法感觉完全是错误的。根据单一责任原则,扩展方法的功能应该与它所操作的类型有相当强的关联。在你描述的情况下,这显然是被侵犯了。 |
![]() |
7
1
这种方法中最大的问题是,几乎不可能非常干净地将依赖注入静态/扩展方法。这意味着您的日志解决方案(假定它变得比将内容转储到stdout/console/debug更复杂)必须启动并配置为在项目上执行任何类型的测试。永远不会。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |