![]() |
1
5
|
![]() |
2
3
我们使用几乎相同的东西:
事实证明,这更像是我愿意经历的痛苦。我更喜欢使用静态方法记录的静态对象。如果您没有获取文件信息,那么获取调用方法的成本就没有那么高。与仅仅调用Log4Net的开销相比,获取调用类型不算什么(取决于所使用的记录器)。 |
![]() |
3
1
Attributes 属性是元数据 |
![]() |
4
1
我们包装了log4net,这样就可以轻松地将其切换出来。这是我们将来很可能改变主意的事情。
如果您对日志记录的方式很聪明,那么只有在需要日志消息时,您才可能产生这种成本。 |
![]() |
5
0
|
![]() |
6
0
|
![]() |
8
0
也许一个简单的方法是在接口上编写一个扩展方法,然后您的类只需要“实现”接口(但实际上不是因为扩展实现接口)
|
![]() |
mueslo Thomas Kühn · 修饰类方法以构建方法注册表 7 年前 |
![]() |
Mr.Dreamer · 类方法的python装饰器 7 年前 |
![]() |
Igor Pozdeev · 属性getter和上下文管理器 7 年前 |
![]() |
Miles P · Typescript类型检查不适用于我的装饰程序 7 年前 |
|
Ryohei · 如何在我的软件包中使用decorator 7 年前 |
|
user7696297 · python中的函数修饰符是什么 7 年前 |
![]() |
lilezek · 限制方法修饰符的使用 7 年前 |