【发布时间】:2016-02-13 13:17:03
【问题描述】:
从一个类继承以保证在重命名类时向后兼容是好的 c# 风格吗?例如,如果在脚本中使用了类并且无法通过重构轻松重命名?
例如:
public class NewClass { // Implementation }
[Obsolete("Is obsolete, please use NewClass instead")]
public class OldClass : NewClass { // EMPTY! }
还是我错过了什么?
非常感谢
【问题讨论】:
-
为什么不更新旧类本身?
-
Update是什么意思?我只想重命名它,因为我喜欢清晰正确的代码。因此,在我的情况下,旧名称不再正确。 (以前有人把产品名放在类名中,重命名产品就打破了这个逻辑,也不再符合我们的代码约定) -
是唯一改变的名字吗?
-
我从来没有遇到过这种情况,但这当然会增加一些开销。所以我尽量不要这样做。
-
您可以实现
implicit运算符来定义OldClass和NewClass之间的转换,而不是继承。但是as和is运算符将无法正常工作。